Ssrs 2008 求和与计数混淆

Ssrs 2008 求和与计数混淆,ssrs-2008,reporting-services,Ssrs 2008,Reporting Services,我不明白计数和求和之间的区别 我试图获取报告中特定条件的行数,并且总是使用count或sum得到0 columnA columnB 0 my string 0 none 0 my string 0 none 1 none =IIF((Fields!columnA.Value=“0”和Fields!columnB.Value=“无”)、和(Fields!columnA.Value)、0) 结果我想得到2分 我看不到我的错误您应该

我不明白计数和求和之间的区别

我试图获取报告中特定条件的行数,并且总是使用count或sum得到0

columnA columnB
0       my string  
0       none
0       my string  
0       none
1       none
=
IIF((Fields!columnA.Value=“0”和Fields!columnB.Value=“无”)、和(Fields!columnA.Value)、0)

结果我想得到2分
我看不到我的错误

您应该使用
计数
。列A的0+0的
和将返回0<代码>计数
将返回匹配记录的数量。如果
COUNT
不起作用,则与数据匹配的分组(聚合)或筛选条件有问题。

SUM()将返回该字段中值的总数,而COUNT将返回非空值的数目

因此,在您提供的示例中,
=SUM(Fields!columnA.value)
应该返回0,
=COUNT(Fields!columnA.value)
应该返回5。[但您的IIF语句使其听起来像是位于作用域为单行的位置,因此计数和求和将仅应用于该行。如果要为整个组确定表达式的作用域,请向聚合函数添加一个作用域参数,例如
count(Fields!columnA.value,“MyDataSetName”)
]

由于您没有看到此结果,因此您可以检查以下几点:

  • 您是否真的为查询返回了0,或者是否可能 你得到的是空值吗
  • 你在用这个表达吗 范围与您期望的相符的地方?也就是说,如果你 想让它计算数据集中的所有行吗?是否在顶部使用它 级别文本框还是组总数

此外,简化调试:将IIF语句的各个组件放在不同的单元格中,以便您可以验证这些值是否与您认为应该发生的匹配。

我使用的是计数IIF((Fields!OrderCompletedOnPDA.Value=“0”和Fields!CompletedBy.Value=“NONE”)、计数(Fields!OrderCompletedOnPDA.Value)、0)我确信我正在从我的sp获取此数据集。我无法理解在这种情况下is是如何不起作用的,现在我将我的sp改为使用,以避免在iff中使用复杂的表达式。现在,我使用=IIF(Fields!CompletedBy.Value=“PDA”,Count(Fields!CompletedBy.Value),0),这将给出我从countRows获得的行总数。。我无法理解为什么其他人不为我工作!!!它必须是导致问题的空数据或范围。查看SSRS计数规范,对于a=1列,IIF将为假。这意味着您有3个假条件和2个真条件。您所需的输出意味着给出“3”的假条件。不是“2”。并且学会投票/接受答案。我非常确定我不会从我的查询中获得空数据,我会将其更改为在结果为空时返回数据。我没有使用组,我想在顶级文本组中使用结果。我在顶层也使用了countrows(),这是有效的。我在文本框中使用这个表达式=IIF(Fields!CompletedBy.Value=“PDA”,Count(Fields!CompletedBy.Value),0),结果得到了所有行的总数,与我从countrows()得到的值相同。我只想得到字段CompletedBy中包含“PDA”的行数