我有一个简单的调查,我需要报告使用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中是否可以这样?
答案 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