当进行汇总查询时,如果A字段几条记录的值不一样,请问怎么显示我想要的值。比如:
A,B,C
SZ,002-00,5
HK,002-00,3
DN,002-00,4对002-00进行汇总,合并成一条记录后,A字段怎么设定值只要包含HK的时候,就显示HK
A,B,C
SZ,002-00,5
HK,002-00,3
DN,002-00,4对002-00进行汇总,合并成一条记录后,A字段怎么设定值只要包含HK的时候,就显示HK
from table1
group by B
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
number
order_id
sku
jj_sku
product_name
quantity_purchased
recipient_name
ship_address_1
delivery_areas
package_area
number,order_id,jj_sku,product_name,quantity_purchased,recipient_name,ship_address_1,delivery_areas,package_area测试数据
1,00001,001-00,inphone5,11,wanggang,dongguan,HKS,SZ
1,00002,002-00,inphone4,8,wanggang,dongguan,HKS,HK
1,00003,003-00,inphone3,5,wanggang,dongguan,JPS,SZ
1,00004,004-00,inphone2,7,wanggang,dongguan,JPS,HK
1,00005,005-00,inphone1,4,wanggang,dongguan,HKS,DN我目前用的语句
SELECT * , group_concat(' ' , concat_ws( ' X ', `jj_sku` , `quantity_purchased` ) , if(`quantity_purchased`> 1, '****' , ' ') ),group_concat(' ' , `order_id` , ' ') FROM ( select * from `sale_orders_restock` where `number` =$id order by `jj_sku`) T WHERE `number` =$id AND (1<(select count(*) from `sale_orders_restock` where `number` =$id and `recipient_name`=T.`recipient_name`) OR `quantity_purchased`>1) GROUP BY `recipient_name` , `ship_address_1` ORDER BY length(group_concat( ' ' , concat_ws( ' X ', `jj_sku` , `quantity_purchased` ) , ' ' )) DESC,`jj_sku`,`quantity_purchased` DESC现在的结果就会是
1,001-00,inphon5,11,wanggang,dongguan,HKS,SZ,001-00 X 11,002-00 X 8,003-00 X 5,004-00 X 7,005-00 X 4,00001,00002,00003,00004,00005
我想要的就是增加以下条件
delivery_areas字段,如果合并的记录包含JPS,就显示JPS
package_area字段,如果合并的记录包含HK,就显示HK,
不知道这样清不清楚,我只想合并后的字段值能根据我设定的条件显示相应的值。