如何在 CRYSTAL 报表上应用具有一系列日期的 SQL 查询

本文关键字:一系列 日期 查询 SQL 应用 CRYSTAL 报表 | 更新日期: 2023-09-27 18:30:48

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

除息日期范围 : 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

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

我通常使用select expert功能来做这样的事情,但据我所知,我认为这不起作用......谁能帮我?提前致谢:)

如何在 CRYSTAL 报表上应用具有一系列日期的 SQL 查询

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

  1. 将"tbl出席率"表格添加到报表中
  2. 在报表中创建两个参数 {?开始日期} 和 {?结束日期},将包含您的日期。
  3. 在选择公式中,添加如下所示的行{tblAttendance.AttendanceDate} in {?StartDate} to {?EndDate} 。此时,您拥有所需的所有数据,只需显示和汇总即可。
  4. 按 {tblAttendance.EmployeeID} 分组,并将distinctcount({tblAttendance.AttendanceDate},{tblAttendance.EmployeeID})摘要放在 GroupHeader 或 GroupFooter 中。这只是意味着对按员工分组的出勤日期进行 distinctcount()。
  5. 在报表上显示摘要、员工姓名和员工 ID。