勤怠(従業員IDと勤務日からなる。)を記録したテーブルを[T_勤務]として、
1)作業クエリ[Q_時給]を定義:
SELECT [T_勤務].[従業員ID], [T_勤務].[勤務日], Max([T_時給].[発令日]) AS 最終発令日
FROM T_勤務 INNER JOIN T_時給 ON [T_勤務].[従業員ID]=[T_時給].[従業員ID] AND [T_時給].[発令日]<=[T_勤務].[勤務日]
GROUP BY [T_勤務].[従業員ID], [T_勤務].[勤務日];
2)[Q_時給]と[T_時給]を組み合わせて、[Q_給料]を定義:
SELECT Q_時給.従業員ID, Q_時給.勤務日, T_時給.発令給
FROM Q_時給 INNER JOIN T_時給 ON Q_時給.従業員ID = T_時給.従業員ID AND Q_時給.最終発令日 = T_時給.発令日;
――で、どうでしょう。
お礼
できました!!!!! ポイントは、1)のところで、各勤務レコードに対してそれぞれに発令日を指定しているころかと思いますが、この部分はSQLでしか指定できない為なのか、このクエリをデザインビューで見ることはできませんでした。 SELECTは、SQLで使用するもののようですが、さすがにSQLビューの存在を今知ったようなレベルですので、使いこなすには時間がかかりそうです。でも、スキルアップのため、まずは今回教えていただいた内容を、完全に理解できるまでなめ回してみようと思います。 目的は達成できました。ありがとうございました。 Q&Aは、さすがにまだ早いので2~3日したらクローズにしたいと思います。理由は、デザインビューのみでもできるやり方がある場合、他の方が参照された際に有益になるかもしれないと思うからです。
補足
早速の回答、ありがとうございます。 また、画像つきでわかりやすく、感激しています。 今、実際のデータベースに割り当て作業をしています。 SELECT構文はこれまでに使用したことが無かったため、 今回の例を参考に勉強しようと思います。 作業が終わったら、改めて動作報告をさせていただきます。