在 SSRS 中将多个结果组合成一行
combining multiple results into one row in SSRS
我有一个简单的调查需要报告使用 SSRS。
它有 2 个问题。一道题可多选如下:
你叫什么名字?
选择你最喜欢的颜色 (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 中可以实现这样的功能吗?
不幸的是,JOIN 不能像您想象的那样在分组基础上工作。
您可以根据自己的情况作弊并这样做:
=JOIN(LOOKUPSET(Fields!Name.Value, Fields!Name.Value, Fields!Color.Value, "DataSet1"), ", ")
这将根据 Name 查找数据集中的值,并将 Colors 与逗号分隔符结合起来。
但是这只会得到选择的种颜色——不是所有颜色。我认为您需要另一个查询未拾取的颜色并将它们组合起来。您可以使用 HTML 标记 boldening.
="<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
我有一个简单的调查需要报告使用 SSRS。
它有 2 个问题。一道题可多选如下:
你叫什么名字?
选择你最喜欢的颜色 (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 中可以实现这样的功能吗?
不幸的是,JOIN 不能像您想象的那样在分组基础上工作。
您可以根据自己的情况作弊并这样做:
=JOIN(LOOKUPSET(Fields!Name.Value, Fields!Name.Value, Fields!Color.Value, "DataSet1"), ", ")
这将根据 Name 查找数据集中的值,并将 Colors 与逗号分隔符结合起来。
但是这只会得到选择的种颜色——不是所有颜色。我认为您需要另一个查询未拾取的颜色并将它们组合起来。您可以使用 HTML 标记 boldening.
="<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