• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESS2000のクエリで、任意の日の時給を抽出したい)

ACCESS2000のクエリで、任意の日の時給を抽出する方法

このQ&Aのポイント
  • ACCESS初心者の方がクエリ中のフィールド名「勤務日」にあるレコード日に対応した「時給」を抽出する方法について質問しています。
  • 具体的なテーブル「T_時給」とクエリ「Q_給料」のデータ例を示しながら、従業員ごとの時給を一意に抽出する方法について説明しています。
  • 現在のクエリの抽出条件によって、発令日が複数ある従業員では時給の表示が複数抽出されてしまい、レコードが重複してしまう問題があると述べています。解決策を求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

勤怠(従業員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_時給.発令日; ――で、どうでしょう。

_samantha_
質問者

お礼

できました!!!!! ポイントは、1)のところで、各勤務レコードに対してそれぞれに発令日を指定しているころかと思いますが、この部分はSQLでしか指定できない為なのか、このクエリをデザインビューで見ることはできませんでした。 SELECTは、SQLで使用するもののようですが、さすがにSQLビューの存在を今知ったようなレベルですので、使いこなすには時間がかかりそうです。でも、スキルアップのため、まずは今回教えていただいた内容を、完全に理解できるまでなめ回してみようと思います。 目的は達成できました。ありがとうございました。 Q&Aは、さすがにまだ早いので2~3日したらクローズにしたいと思います。理由は、デザインビューのみでもできるやり方がある場合、他の方が参照された際に有益になるかもしれないと思うからです。

_samantha_
質問者

補足

早速の回答、ありがとうございます。 また、画像つきでわかりやすく、感激しています。 今、実際のデータベースに割り当て作業をしています。 SELECT構文はこれまでに使用したことが無かったため、 今回の例を参考に勉強しようと思います。 作業が終わったら、改めて動作報告をさせていただきます。

すると、全ての回答が全文表示されます。

関連するQ&A