在表PO中有以下列:PO#,Styel#,Color以及Quantity,其中同一个PO#可能会有不同的Style#,同一个PO#与Style#可能有不同的Color,现在要求是:把PO#与Style#相同的记录的Color与Quantity算出来,插入到一个新表中去,如:
PO# Style# Color Quantity
A 01 Red 10
A 01 Blue 20
B 02 Red 10
B 03 Blue 30
要得到表如下:
PO# Style# Color Quantity
A 01 Red,Blue 30
B 02 Red 10
B 03 Blue 30
可用如下方法得到所有要插入新表的数据:
SELECT PO#,STYLE#,(CASE COLOR WHEN ‘‘ THEN ‘‘ ELSE LEFT(COLOR,LEN(COLOR)-1) END) COLOR,QUANTITY FROM ( SELECT DISTINCT PO#,STYLE#,COLORLIST AS COLOR, ( SELECT SUM(Quantity) FROM PO WHERE PO#=B.PO# AND STYLE#=B.STYLE# ) QUANTITY FROM ( SELECT PO#,STYLE#, ( SELECT COLOR+‘,‘ FROM PO WHERE PO#=A.PO# AND STYLE#=A.STYLE# FOR XML PATH(‘‘) ) AS COLORLIST FROM PO AS A ) B ) C
时间: 2024-10-06 00:22:01