【问题标题】:SQL Server Reporting Service (SSRS) - Calculate Percentage using values in two columnsSQL Server Reporting Service (SSRS) - 使用两列中的值计算百分比
【发布时间】:2021-08-22 02:55:52
【问题描述】:

我正在尝试使用两列的总和来计算百分比。我在开头包含了一个 IIF 语句,如果值不存在,也显示“-”而不是“0”。 LLActive 和 LLClosed 中的值等于 1 或 0,因此是 COUNT 函数。

输出应该是 100%。

=IIF(SUM(Fields!LLActive.Value) + SUM(Fields!LLClosed.Value)=0,"-", COUNT(IIF(Fields!LLActive.Value=1 OR Fields!LLClosed.Value=1,1,0))/COUNT(Fields!LLActive.Value) + COUNT(Fields!LLClosed.Value))

【问题讨论】:

  • 你的问题有点含糊。您是在尝试格式化输出还是您的计算不起作用?您可以添加“P0”格式说明符来强制百分比。
  • 感谢@RossBush 我的计算不起作用。格式说明符是否包含在第二个参数中?:'COUNT(IIF(Fields!LLActive.Value=1 OR Fields!LLClosed.Value=1,1,0))/COUNT(Fields!LLActive.Value) + COUNT(Fields !LLClosed.Value))'

标签: sql-server tsql reporting-services


【解决方案1】:

对于 1/0 IIF(第 3 行),您需要使用 SUM 而不是 COUNT。您正在计算 1 和 0,这将计算所有值。

=IIF(SUM(Fields!LLActive.Value) + SUM(Fields!LLClosed.Value)=0,
    "-", 
    SUM(IIF(Fields!LLActive.Value = 1 OR Fields!LLClosed.Value = 1, 1, 0)) 
    / 
    COUNT(Fields!LLActive.Value) + COUNT(Fields!LLClosed.Value))

【讨论】:

  • 感谢@Hannover Fist。这是我的问题。答案标记为已接受。
【解决方案2】:

尝试在报告使用的脚本中进行此计算。

C1:为所有活动和关闭的总和添加一列

C2:为第二个 IIF 中的表达式添加另一列

然后在报告中做:

IIF(C1=0, "-", IIF(C2=1, 1, 0) / C1))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多