在我的表格中,我有两列,一列代表帐号,另一列代表购买的物品。如果客户购买了3个商品,则同一帐号将有3行,每行1个。 (如果我没记错的话,这叫做长表。)
我的目标是将COALESCE()
的三个项目结合在一起。例如:
SELECT
o.AcctID,
c.ListItems
FROM OriginalTable as o
INNER JOIN (
DECLARE @ListItems Varchar(100)
SELECT
AcctID,
@ListItems = COALESCE(@ListItems,'') + OrderItems + ', '
FROM OriginalTable WHERE ???
) as c ON o.AcctID = c.AcctID
现在,如何设置WHERE
语句,以便为每个帐号创建一个新的子表?谢谢...。
修改
例如,我要转换...
id AcctId | OrderItems | Quantity
1 10 | A2301 | 2
2 10 | A4544 | 4
3 11 | B3299 | 2
4 11 | B3602 | 3
5 11 | A2301 | 1
进入...。
id AcctId | ListItems
1 10 | 'A2301', 'A4544'
2 11 | 'B3299', 'B3602', 'A2301'