如何在水晶报表上应用具有一系列日期的sql查询

时间:2012-04-11 11:06:03

标签: c# sql-server crystal-reports

我必须检索一个员工在两个日期之间工作的人数。 我设法得到了这样的查询

日期范围: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功能,但我不认为这会对此有用,据我所知... 谁能帮我?提前谢谢:)

1 个答案:

答案 0 :(得分:1)

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

  1. 将表'tblAttendance'添加到您的报告
  2. 在报告中创建两个参数,{?StartDate}和{?EndDate},其中包含您的日期。
  3. 在您的选择公式中,添加一行,如{tblAttendance.AttendanceDate} in {?StartDate} to {?EndDate}。此时,您拥有所需的所有数据,只需显示和汇总即可。
  4. 按{tblAttendance.EmployeeID}分组,并在GroupHeader或GroupFooter中放置distinctcount({tblAttendance.AttendanceDate},{tblAttendance.EmployeeID})的摘要。这只是意味着按员工分组的出勤日期()。(/ li>)
  5. 在报告中显示摘要,员工姓名和员工ID。