2017-03-31 6 views
0

最終結果は、複数の従業員が複数の日付を日付範囲内で処理したレポートです。私の報告書では、従業員がそれを働いたかどうかにかかわらず、報告書に示されている範囲内のすべての日付を持つ必要があります。msアクセスクエリを使用して日付表をタイムシート表に結合する

だから私は、各emplの作業日と時間を持つテーブルを持っています。私はまた、将来の日付のテーブルを作成しました。私は2つのテーブルを結合し、日付範囲のすべての日付を入れるクエリが必要だと思う - それはプロンプトが表示されます。従業員の時間労働のテーブルに追加されます。

これらのテーブルに参加し、2週間の範囲内の各従業員のすべての日付を取得する方法はありますか?

最初の表の日付は、将来の日付の方法で1列しかありません。

2番目のテーブルには、Empl Name、作業日、作業時間があります。

+0

レビューhttp://stackoverflow.com/questions/43055953/access-query-to-find-who-didnt-test-over-a-range-of-dates/43063096#43063096 – June7

答えて

0

ネストされたクエリ(別名サブクエリ)を使用して従業員と暦日のすべての組み合わせを作成し、次に2番目のテーブル(タイムシートテーブル)を左に移動する必要があります。

select * 
from (select distinct empl_name, cal_date from first_tbl, second_tbl 
     where cal_date between [start date] and [end date]) as nested 
left join second_tbl 
    on nested.empl_name = table_2.empl_name 
    and nested.cal_date = table_2.work_date 
+0

をいただき、ありがとうございますあなたの反応。以下のコードは、これまでのところ動作していますが、何らかの理由でempl_nameとcal_dateのプロンプトが表示され、終了日は期待されていますが、開始日はありません。終了日に日付を置く以外のプロンプトに何も入力しないと、TotHoursQueryにある元のデータが戻ってきて、empl_nameとcal_dateフィールドが何も表示されずにビューに追加されます。以下私のコード.. – Shawnash

+0

がネスト LEFT AS(ON TotHoursQuery をJOIN([開始日]と[終了日]の間Nested.cal_dateはTotHoursQuery 、日付とは異なるNested.empl_name、Nested.cal_date 選択)* FROM を選択Nested.cal_date = TotHoursQuery。[開始日]) AND(Nested.empl_name = TotHoursQuery。[フルネーム]); – Shawnash

関連する問題