Reporting services SSRS:从';计数';计算字段

Reporting services SSRS:从';计数';计算字段,reporting-services,ssrs-2008-r2,reportbuilder,report-builder2.0,Reporting Services,Ssrs 2008 R2,Reportbuilder,Report Builder2.0,SSRS非常新,因此不熟悉语法-使用报表生成器2.0 我在ReportBuilder中构建了一个非常简单的表,用于显示可供患者使用的预约时段总数,以及已预订的预约时段总数 我想添加一个额外的列来显示已预订的插槽的百分比(即可用插槽/已预订插槽*100%): “总时段”和“预订时段”值均基于数据集中的同一字段(“预订时段标志”)。此字段带有“是/否”值 “Total Slots”列具有基本表达式:=Count(Fields!Booked\u Flag.Value) “已预订的插槽”列具有基本表达式

SSRS非常新,因此不熟悉语法-使用报表生成器2.0

我在ReportBuilder中构建了一个非常简单的表,用于显示可供患者使用的预约时段总数,以及已预订的预约时段总数

我想添加一个额外的列来显示已预订的插槽的百分比(即可用插槽/已预订插槽*100%):

“总时段”和“预订时段”值均基于数据集中的同一字段(“预订时段标志”)。此字段带有“是/否”值

“Total Slots”列具有基本表达式:
=Count(Fields!Booked\u Flag.Value)

“已预订的插槽”列具有基本表达式:
=SUM(IIF(Fields!Booked_Flag.Value=“Y”,1,0))

请描述一下计算“%Booked”数字的最合适方法

我尝试过这样做:
=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.

非常感谢您的指导。

您可以直接访问报表单元格的内容并使用这些单元格进行计算。你的情况很简单。 让我们假设在报表设计中,包含“2000”的单元格称为TextBox1(检查属性以获取名称),包含“1250”的单元格称为TextBox2,那么您的%列表达式如下所示

=ReportItems!TextBox2.Value / ReportItems!TextBox1.Value

只需将计算列的格式设置为
p1
(小数点后1位的百分比),您的操作就完成了。

使用实际的文本框值,而不是使用字段。报告项目!Textbox1.value是否可以修改数据以返回0或1值,而不是“Y”/“N”?这样你就可以简单地求和了。谢谢@Snowlock-我已经尝试过了,但它在报告中给了我一个
#错误
-有什么建议吗?谢谢@RossBush-我想我可以试着在StoredProcess中计算价值,但我很想看看是否有可能处理报表层中的所有计算。可能是一个除以零的错误。使用以下代码公共共享函数SafeDivision(分子为十进制,分母为十进制)作为十进制(如果分母=0.0),如果返回分子/分母结束,则返回0.0结束Function@Alan_Schofield-非常感谢,但是,当我运行报告时,表格单元格中显示了一个
#错误
。您是否确保文本框名称正确?我刚刚测试过这个,以防我做了一些愚蠢的事情,但效果很好。如果您仍然有问题,请发布报告设计的图像和您使用的确切表达式。@Alan_Schofield破解了它,谢谢。我在表达式中错误地使用了列标题单元格的名称,而不是包含实际值的单元格的名称—将它们改为“不”并且答对了。非常感谢你的帮助。
=ReportItems!TextBox2.Value / ReportItems!TextBox1.Value