如何对SQL Server查询的结果进行分组(组不工作)

时间:2015-07-14 06:17:51

标签: sql-server group-by

得到了这个查询:

FOR XML PATH('')

项目通常有多个零件号。可以修改我的查询以获得分组结果吗? 不添加任何子选择。分组不工作。我尝试添加 <style type="text/css"> #rightbar img:hover { border:1px solid #5cadff; text-decoration:none; } #rightbar img { border:1px solid transparent; padding:20px 58px; } </style> ,但它会转换xml中的所有列,而不仅仅是部件号

1 个答案:

答案 0 :(得分:2)

这是一种可行的方法(我认为你应该使用1:n设计)

DECLARE @items TABLE(item_id INT, item_description VARCHAR(100),part_number VARCHAR(100));
INSERT INTO @items VALUES(1,'HP Color','C4149A-REMAN')
                        ,(1,'HP Color','C4149REMAN')
                        ,(2,'Toner','480-0055')
                        ,(2,'Toner','4800055')
                        ,(2,'Toner','888037')
                        ,(3,'anotherone','1234');
WITH itemCTE AS
(
    SELECT DISTINCT item_id,item_description
    FROM @items
)                        
SELECT itemCTE.*,parts.list 
FROM itemCTE
CROSS APPLY
(
    SELECT STUFF((SELECT ', ' + part_number AS concated
                  FROM @items AS itm 
                  WHERE itm.item_id=itemCTE.item_id
                  FOR XML PATH(''),TYPE).value('.','varchar(max)'),1,2,'')
) AS parts(list)