我有连接多个表的T-SQL查询。我在SSRS中使用它作为数据集查询。我只选择两列,ID和名称。我有三个记录具有相同的“ID”值但三个不同的“名称”值。在SSRS中,我获得了第一个“名称”值,我需要将所有三个值连接到相同的ID,并将它放在表格的一个单元格中。
我该怎么做呢?
我正在使用lookup来组合cube + sql 直接从表中提取ID,但使用名称的Case语句来定义别名。
答案 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
...