- ベストアンサー
Access2000 選択クエリで最新の日付のレコードだけ表示したい。
タイトルのように、フィールド「年月日」に抽出条件をつけたいのですが、 選択クエリ、デザインビューの抽出条件に何を入れればよいでしょうか? やり方が違うのかも知れませんが・・・
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
なんか回りくどいことをしていますが 各社員の最新レコードが得られればいいんじゃないんですか 時給テーブルから作ったクエリの年月日の抽出条件欄に In (select max(年月日) from 時給テーブル as 時給テーブル_2 where 時給テーブル_2.社員番号=時給テーブル.社員番号) >(0で始まる番号を含むため主キーに設定不可) こんなことはありません。テキスト型でも主キーにできます >このフォームをデザインビューにしてフォームビューに戻すと正しく更新できます。 再クエリされるからです でも今の方法はやめたほうがいいでしょうね >「マスター」テーブルに「時給テーブル」から最新の時給と年月日を抽出したい テーブルに抽出ってどういうこと? マスタを書き換えるの? そんなことする必要はありませんよ。 というよりもっと言えばしてはいけません
その他の回答 (1)
- CHRONOS_0
- ベストアンサー率54% (457/838)
情報不足ですよ 少なくとも抽出を行いたいテーブルにどのようなフィールドがあるのかぐらい書かないと 答えようがありません 大雑把でいいいのなら抽出条件にはサブクエリを書きます In (select max(年月日) from テーブル名 where いろんな条件)
補足
御回答ありがとうございます。 情報不足は失礼しました。抽出を行いたいテーブル「時給テーブル」のフィールドには オートナンバー(主キー)、社員番号(0で始まる番号を含むため主キーに設定不可)、年月日、時給、と摘要です。 別のテーブル「マスター」に時給以外の社員情報を入れてますが、不定期に変化するもの(時給など)は、履歴と一括入力の必要性から別にテーブルを作ってます。 最終的にはフォームで個人情報を見たときに最新の時給を見たいわけです。 select maxを使って希望の表示はできるようになりましたが、 フォームを表示させるクエリ(マスターテーブルが元)に別のクエリ(今回作成したクエリ)を入れるとうまく表示しません。 フォームを開いて社員番号を入力すると表示できますが、社員番号を更新しても時給部分は更新されない状態です。 一旦、このフォームをデザインビューにしてフォームビューに戻すと正しく更新できます。 時給の履歴は、フォームに貼り付けたサブフォームで確認可能なのですが、他の情報とのからみでページタブをクリックする必要があります。 上記のことから「マスター」テーブルに「時給テーブル」から最新の時給と年月日を抽出したいと考えて悪戦しているところです。 アドバイスがあればお願いします。
お礼
お礼が遅くなって申し訳ありません。 もう少し勉強してみます。