sql-server - Visual Studio 中的多条件计数表达式
问题描述
我正在尝试添加一些报表逻辑来保存设置另一个数据集。我需要的第一件事是计算每个日期的行数,然后计算每个日期的行数,其中另一列状态 =“是”。
我有一个原始数据存储过程,它在另一个选项卡上将数据作为表返回。
解决方案
匹配日期参数的记录数:
=SUM(IIF(Fields.DATE_FIELD.Value = Parameters!DATE_PARAM.Value, 1, 0))
与另一列 = YES 的日期参数匹配的记录数:
=SUM(IIF(Fields.DATE_FIELD.Value = Parameters!DATE_PARAM.Value AND Fields.OTHER_FIELD.Value = "Yes", 1, 0))
IIF 检查条件,如果它们为 TRUE,则返回 1 作为记录,否则返回 0,然后将这些值相加。
更新:我想我误解了你需要什么。
您希望按日期计算所有记录,而不仅仅是特定日期。
为此,您需要一个按日期分组的表,然后您可以只使用 COUNTROWS 或 SUM(1) 作为每个日期的记录数。
然后您可以使用 IIF 检查另一个字段中的 Yes:
=SUM(IIF(Fields.OTHER_FIELD.Value = "Yes", 1, 0))
由于您的表格已经按日期分组,因此您不需要上述表达式中的日期。