SSRS Count记录日期小于分组日期的表达式

时间:2019-02-20 17:10:23

标签: date reporting-services count iif

我要计算未标记为已完成且记录的接收日期少于行的接收日期的记录(按接收日期“明细”分组),这将是“开始日期”列,显示队列中有多少记录。

我在VS 2017 SSDT中有一个Tablix。

Tablix按接收日期分组

COLUMNS
Received Date (group by Details) another column same field (Textbox5)
Start of Day        
New Tasks       
Completed   

“开始日期”列字段的代码逻辑出现问题。

我要对未标记为已完成且记录的接收日期少于行的接收日期的记录进行计数(按接收日期“详细信息”分组)

此代码适用于“新任务”列。 =COUNT(IIF(Fields!Received.Value < Fields!Received.Value AND Fields!Completed.Value = "NO", 1,0),"Details")

当我尝试“开始日”表达式时,出现错误。 Textbox5是在按字段分组(已接收)中使用的同一数据集字段。我添加了它以测试不同的方法。

=COUNT(IIF(Fields!Received.Value < ReportItems!Textbox5.Value AND Fields!Completed.Value = "NO", 1,0),"Details")

  

错误:可以使用rsAggregateReportItemlnBody聚合函数   仅适用于页面页眉和页脚中包含的报告项目。

“开始日期”列的样本数据和预期输出:如果它们在开始日期(昨天)之前处于队列中,则应按行对记录进行计数。

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以使用运行值来计算总计。要获取之前的日期总计,请减去组的总值

一天开始

=  RunningValue( 1, SUM, "Tablix1")- SUM( 1)

新任务

= SUM(1) or COUNT(1)

完成

=  RunningValue( Iif(Fields!CompYN.Value = "YES",1,0), SUM, "Tablix1")- SUM( Iif(Fields!CompYN.Value = "YES",1,0))

enter image description here

答案 1 :(得分:0)

“新任务”列:=COUNT(IIF(Fields!Received.Value = Fields!Received.Value AND Fields!Completed.Value = "NO", 1,0),"Details")

开始日期列:=COUNT(IIF(Fields!Received.Value < Fields!Received.Value AND Fields!Completed.Value = "NO", 1,0),"Details")