在SSRS中将多个结果合并为一行

时间:2016-04-12 16:53:33

标签: reporting-services ssrs-2008 ssrs-2008-r2 ssrs-2012

我有一个简单的调查,我需要报告使用SSRS。

它有两个问题。一个问题可以有多个选项,如下所示:

你叫什么名字?

选择您喜欢的颜色Red, Blue, Green, Yellow, Brown, Purple)?

以下是示例查询结果:

Tim       Red
Tim       Blue
Tim       Green
Mary      Yellow
George    Brown
George    Red
Jill      Purple

我希望将它们组合在一起,以便它们全部显示在报告的一行中,以粗体显示所选答案(或不同的颜色),未选择的答案就像纯文本一样。

Tim: 红色蓝色绿色,黄色,棕色,紫色

Mary:红色,蓝色,绿色,黄色,棕色,紫色

George: 红色,蓝色,绿色,黄色,棕色,紫色

Jill:红色,蓝色,绿色,黄色,棕色,紫色

我尝试在报告中使用此表达式:

Join(Fields!favoriteColors.Value, ", ")

但是我会在报告中看到#Error。

在SSRS 2008R2中是否可以这样?

1 个答案:

答案 0 :(得分:1)

不幸的是, JOIN 不像你想象的那样在分组的基础上工作。

你可以在你的情况下以这种方式作弊:

=JOIN(LOOKUPSET(Fields!Name.Value, Fields!Name.Value, Fields!Color.Value, "DataSet1"), ", ")

这将根据名称查找数据集中的值,并将颜色与逗号分隔符合并。

这只会获得选定的颜色 - 而不是所有颜色。我认为你需要另一个查询未选择的颜色并将它们组合起来。您可以将HTML标记用于粗体 ening。

="<b>" & JOIN(LOOKUPSET(Fields!Name.Value, Fields!Name.Value, Fields!Color.Value, "DataSet1"), ", ")
& "</b>" & JOIN(LOOKUPSET(Fields!Name.Value, Fields!Name.Value, Fields!Color.Value, "DataSet2"), ", ")

查询未选择的颜色:

SELECT Name, Color FROM 
(select DISTINCT Color from #COLORS ) C
CROSS JOIN 
(select DISTINCT Name from #COLORS ) N 
EXCEPT SELECT Name, Color FROM  #COLORS