2

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}の2つのパラメーターを作成します。
  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 に答える