SSRS 根据组中的字段值(状态)统计记录

SSRS Count Record Based on Field Value (Status) in a Group

我有以下数据table:

--> Click here for the picture.

我想添加新列并计算员工在办公室的次数,如下所示:

--> Click here for the picture.

鉴于我在 Employee 中有组,我如何在表达式中计算它。

谢谢。

您可以通过 SQL 脚本来完成。

SELECT A.EMPLOYEE_NAME,A.DATE,A.ATTENDANCE,B.DAYS_WORKED 
FROM TABLE A
    LEFT JOIN 
    (SELECT EMPLOYEE_NAME,COUNT(ATTENDANCE) DAYS_WORKED
        FROM (
            SELECT EMPLOYEE_NAME,DATE,ATTENDANCE 
            FROM TABLE
            WHERE ATTENDANCE = 'IN-OFFICE')
            ) B
    ON A.EMPLOYEE_NAME = B.EMPLOYEE_NAME

您现在有了字段 DAYS_WORKED 然后只需将它添加到您的 table.

您可以使用 LookupSet() 函数来获取 In-Office 计数。添加带有员工姓名组的 tablix。

请注意,工作天数列在员工组范围内,但在详细信息组范围外。

使用此表达式获取每位员工的出勤次数 In-Office:

=LookupSet(Fields!Employee.Value & "-" & "In-Office",
  Fields!Employee.Value & "-" & Fields!Attendance.Value,
  Fields!Attendance.Value,"DataSetName"
 ).Length

DataSetName 替换为您的数据集的实际名称。它将生成以下 tablix:


更新:基于 OP 的评论。

替换 LookupSet 表达式并使用它来向筛选计数添加多个条件。

=COUNT(IIF(Fields!Attendance.Value="In-Office" OR 
Fields!Attendance.Value="Out for Official Business",
Fields!Attendance.Value,Nothing))

它计算给定组中的 In-OfficeOut for Official Business 行。

如果有帮助请告诉我。

=计数(字段!EmployeeName.Value,"DataSet1")