【问题标题】:Combine multiple row values into one row将多个行值合并为一行
【发布时间】:2014-06-19 08:34:54
【问题描述】:

我有一个结果集,应该作为一行拉入报告中。但是,可以有多个买家与订单相关联,这些买家在数据库中表示为新行。因此,例如,我有以下...

SELECT
   O.OrdersID
   ,BS.LastName
FROM
   Orders O
LEFT JOIN 
   BuyerSeller BS ON O.OrdersID = BS.OrdersID

如果有多个买家,会返回如下结果集:

OrdersID | LastName 
----------------------
1        | Tester1
1        | Tester2 
1        | Tester3 

我希望它返回如下(由列分隔):

OrdersID | LastName 
---------------------------------------
1        | Tester1, Tester2, Tester3

感谢您的帮助。

【问题讨论】:

  • sql 不是一个平台,而是一种语言。您的答案很大程度上取决于您使用的平台。你能用平台标记你的帖子吗?

标签: sql sql-server tsql reporting-services


【解决方案1】:

这是你的答案。

SELECT DISTINCT Ord.OrderID , substring
                         ((SELECT        ',' + BS.LastName AS [text()]
                             FROM    Orders O   LEFT JOIN BuyerSeller BS       ON O.OrderID = BS.OrderID
                             ORDER BY  O.OrderID FOR XML PATH('')), 2, 1000) LastName

FROM 订单号

这将返回预期的输出。

【讨论】:

    【解决方案2】:

    要在SSRS 中完成此操作,您需要

    1. 创建表,将OrdersID 作为行组

    2. 确保组内没有详细信息部分。如果有则删除它而不删除行。

    3. LastName写下这个表达

    =Join(Lookupset(Fields!OrdersID.Value, Fields!OrdersID.Value, Fields!LastName.Value, "myDataSet"), ", ")

    记住 SSRS 区分大小写

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-29
      • 2012-12-29
      • 1970-01-01
      相关资源
      最近更新 更多