0

MS Access データベース テーブルの datetime 列があります。特定の月 (たとえば 7 月) を選択すると、その月の日付ごとのデータを取得する必要があります。

出力は、添付の画像と同じ形式で表示されます。

特定の日に出勤するすべての従業員は、その日の「P」を表示する必要があります。従業員が特定の日 (土日など) に来ない場合は、その日の「WO」を表示する必要があります。

従業員が入室していない場合 (土日など)、その日付のログ テーブルにはエントリがありません。

この出力を得るには、どのように Access クエリを記述すればよいでしょうか? MS Access 2003 データベースを使用しています。

編集: TRANSFORM と PIVOT を使用する必要がありますが、問題は、従業員が不在の場合 (土、日)、出力にデータを表示する必要があることです。


ここに画像の説明を入力ここに画像の説明を入力

4

1 に答える 1

1

最初のテーブルから EmpID と CheckTime を読み取り、1 つの列を追加するクエリを設定します。

DateWise: IIf(Weekday([CheckTime])=1 Or Weekday([CheckTime])=7,"WO","P")

その年のすべての日付を含む追加のテーブルが必要になります (これを YearDates と呼びます)。次のように、そのテーブルをクエリに左結合します。

Select YD.YearDates, Q2.* from YearDates YD LEFT JOIN Query2 Q2 ON YD.YearDates = DATEVALUE(Q2.CheckTime)

DATEVALUE は CheckTime の日付から時間を取り除き、日付と日付を一致させます。

于 2013-07-26T13:29:55.983 に答える