题目
有如下一张表T0310
希望得到如下结果:
即相同品种,规格,颜色的数据行的数量进行汇总,同时合并他们汇总前的ID为IDs
测试数据
Create table T0310
(
ID int,
品名 varchar(23),
规格 varchar(23),
颜色 varchar(22),
数量 int
)
Insert INTO T0310 VALUES(1,'aaa','a-1','红色',50) ;
Insert INTO T0310 VALUES(2,'bbb',null,'红色',60) ;
Insert INTO T0310 VALUES(3,'aaa','a-1','红色',50) ;
Insert INTO T0310 VALUES(4,'ccc','c-1',null,50) ;
Insert INTO T0310 VALUES(5,'bbb',null,'红色',60) ;
参考答案
SELECT 品名,规格,颜色,SUM(T.数量) AS 数量,
IDs=STUFF((SELECT ','+RTRIM(ID) FROM T0310 WHERE T.品名=品名 FOR XML PATH('')),1,1,'')
FROM T0310 T
GROUP BY 品名,规格,颜色
考点: STUFF和FOR XML PATH