2

我必须检索在两个日期范围内有多少员工参加工作。我设法得到这样的查询

前日期范围:2012-02-032012-03-03

SELECT A.EmployeeD, A.EmployeeName, ISNULL(SUM(CASE WHEN  a.AttendanceDate BETWEEN '2012-02-03' AND '2012-03-03' THEN  1 ELSE 0 END), 0) AS AttendCount
FROM     (SELECT     EmployeeID, EmployeeName, AttendanceDate
                      FROM          dbo.tblAttendance
                      GROUP BY EMPLOYEEID, EmployeeName, AttendanceDate
         ) AS A
GROUP BY EMPLOYEEID, EmployeeName

但是我该如何使用它才能在 Crystal Report(在 C# 上)上显示它?我的意思是,我希望用户能够更改程序内的日期范围。

我通常将select expert功能用于此类事情,但据我所知,我认为这不会起作用...有人可以帮助我吗?提前致谢 :)

4

1 回答 1

1

您可以将计数卸载到 CR...

  1. 将表格“tblAttendance”添加到您的报告中
  2. 在报告中创建两个参数,{?StartDate} 和 {?EndDate} 将包含您的日期。
  3. 在您的选择公式中,添加这样的一行{tblAttendance.AttendanceDate} in {?StartDate} to {?EndDate}。至此,您拥有了您想要的所有数据,只是显示和汇总的问题。
  4. 按 {tblAttendance.EmployeeID} 分组,并将摘要distinctcount({tblAttendance.AttendanceDate},{tblAttendance.EmployeeID})放在 GroupHeader 或 GroupFooter 中。这只是意味着按员工分组的出勤日期的 distinctcount()。
  5. 在报告中显示摘要、员工姓名和员工 ID。
于 2012-04-11T15:55:38.483 回答