【发布时间】:2017-05-17 12:37:03
【问题描述】:
对 SSRS 非常陌生,因此不熟悉语法 - 使用 Report Builder 2.0。
我在报表生成器中构建了一个非常简单的表格,用于显示可供患者使用的预约空档总数,以及已预订的这些空档总数。
我想添加一个额外的列来显示预订插槽的百分比(即可用插槽/已预订插槽 *100%):
| Total Slots | Booked Slots | % Booked |
+-------------+--------------+----------+
| 2000 | 1250 | 62.5% |
+-------------+--------------+----------+
'Total Slots' 和 'Booked Slots' 值均基于数据集中的相同字段 ('Booked_Flag')。该字段带有一个“Y/N”值。
“总时隙”列具有基本表达式:=Count(Fields!Booked_Flag.Value)
“预定时段”列具有基本表达式:=SUM(IIF(Fields!Booked_Flag.Value="Y",1,0))
请任何人描述计算“预订百分比”数字的最合适方法吗?
我试过这个:=SUM(IIF(Fields!Booked_Flag.Value="Y",1,0)) / SUM(Fields!Booked_Flag.Value),但它会引发以下错误 - 我假设这意味着我无法在另一个计算之上执行计算:
The expression used for the calculated field '=SUM(IIF(Fields!Booked_Flag.Value="Y",1,0)) / SUM(Fields!Booked_Flag.Value)' includes an aggregate function. Aggregate functions cannot be used in calculated field expressions.
非常感谢任何指导。
【问题讨论】:
-
不使用字段,而是使用实际的文本框值。 ReportItems!Textbox1.value
-
能否修改数据以返回 0 或 1 值而不是 'Y'/'N'?这样你就可以简单地求和。
-
谢谢@Snowlockk - 我已经尝试过了,但它在报告中给我一个
#Error- 有什么建议吗? -
感谢@RossBush - 我想我可以尝试在 StoredProcedure 中转换值,但我很想看看是否可以处理报表层中的所有计算。
-
可能是除以零错误。使用以下代码 Public Shared Function SafeDivision(numerator as Decimal, denominator as Decimal) as Decimal If denominator = 0.0 Return 0.0 End If Return numerator / denominator End Function
标签: reporting-services ssrs-2008-r2 reportbuilder report-builder2.0