【问题标题】:Reporting Services - Count Column Values if equals AReporting Services - 如果等于 A,则计算列值
【发布时间】:2013-09-19 11:04:15
【问题描述】:

我有一个名为“dsAllStuTargetData”的数据集 - 我正在尝试计算出现在“目标”列中的“A”值的数量。

我正在使用带有表达式的文本框执行此操作,我可以使用以下方法计算值的总数:

=Count(Fields!Target.Value, "dsAllStuTargetData")

但是,当我尝试计算值等于“A”的位置时,它不起作用。

=Count(IIF(Fields!Target.Value, "dsAllStuTargetData")="A",1,0)

【问题讨论】:

    标签: reporting-services


    【解决方案1】:

    对于这种情况,您需要Sum,而不是Count,例如:

    =Sum(IIf(Fields!Target.Value = "A", 1, 0), "dsAllStuTargetData")
    

    Count 只会计算行数; IIf 在那里没有做任何事情 - 在某些情况下,CountDistinct 之类的东西可能会受到影响,但这在这里不起作用。

    但是,Sum 将获取满足 IIf 条件的所有行的总和,即 DataSet 中所有 1 值的总和,这就是您所追求的。

    【讨论】:

    • 你好伊恩,它工作正常,但如果我想通过在日期字段的基础上计数一个字段来分组怎么办。如何通过上述表达式使用 Group by 或 Aggregate?谢谢。
    【解决方案2】:

    IIF 希望它的参数格式为:

    IIF(condition, true part, false part)
    

    这相当于

    Count(IIF(Fields!Target.Value = "A",1,0),"dsAllStuTargetData")
    

    这行得通吗?

    【讨论】:

    • 嗨,马特 - 不幸的是,它不起作用,它仍然返回记录总数 (23)。事实上,它应该计算 10 个“A”值。
    猜你喜欢
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多