如何动态更改子表中的WHERE语句

时间:2019-05-02 14:57:23

标签: sql-server

在我的表格中,我有两列,一列代表帐号,另一列代表购买的物品。如果客户购买了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'

0 个答案:

没有答案