SSRS - T-SQL - 连接多行

时间:2012-08-29 21:25:35

标签: visual-studio-2010 tsql reporting-services business-intelligence

我有连接多个表的T-SQL查询。我在SSRS中使用它作为数据集查询。我只选择两列,ID和名称。我有三个记录具有相同的“ID”值但三个不同的“名称”值。在SSRS中,我获得了第一个“名称”值,我需要将所有三个值连接到相同的ID,并将它放在表格的一个单元格中。

我该怎么做呢?

我正在使用lookup来组合cube + sql 直接从表中提取ID,但使用名称的Case语句来定义别名。

1 个答案:

答案 0 :(得分:1)

您可以使用PIVOT在TSQL中完成此操作,将它们作为单独的列,然后您可以在报表单元格中组合,或者您可以使用these串联方法之一来获取所有名称在一栏中。

例如,您可以这样做:

SELECT  SomeTableA.Id,
        STUFF(
          (SELECT ',' + SomeTableB.Names AS [text()]
           FROM SomeTable SomeTableB
           WHERE SomeTableB.Id = SomeTableA.Id
                    FOR XML PATH('')), 1, 1, '' )
        AS ConcatenatedNames
FROM  SomeTable SomeTableA
INNER JOIN AnotherTable
  ON SomeTableA.Id = AnotherTable.SomeId
...