- ベストアンサー
履歴を持つ商品マスターの取出し方
逆引クエリーでも見つからなかったので 質問させて頂きます。 コード | 年月 | 価格 1 | 2006/12 | 100 * 2 | 2006/6 | 1000 2 | 2006/9 | 1200 2 | 2006/12 | 1500 * 3 | 2006/8 | 2200 3 | 2006/12 | 2000 * 4 | 2006/8 | 50 * 上記のように履歴を持った商品マスターがある場合、 直近のマスター (*のデータ) をクエリーで取出したい 場合は、クエリーデザインで抽出できますでしょうか。 もしくは、いくつかのクエリーを組み合わせてなど。 社内には、アクセスの有識者がいないため、行き詰まっており よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
1.コードをグループ化して年月の最大を抽出するクエリを作成。 2.上のクエリと元のテーブルをコードと年月を連結で連結してコード・年月の最大・価格を抽出 でどうでしょうか?
その他の回答 (3)
- CHRONOS_0
- ベストアンサー率54% (457/838)
>Aになにをいれるのかがわからず、苦戦しています。 Aのままでいいのです 同じテーブルに別の名前をつけて比較用に開きます
お礼
別名ということなのですね。 これですっきりしました。 トライはすぐはできませんが 参考になりました。
- CHRONOS_0
- ベストアンサー率54% (457/838)
こういう場合はサブクエリを使います クエリデザインビューでも作成できますよ クエリデザインビューで年月の抽出条件欄に in (select max(年月) from テーブル名 as A where A.コード=テーブル名.コード)
お礼
ありがとうございます。 スマートにできると思ってやってみたのですが、 Aになにをいれるのかがわからず、苦戦しています。 一応課題はクリアーしましたが、今後のために、 お手数でなければ、補足頂ければありがたいです。
- mshr1962
- ベストアンサー率39% (7417/18945)
入力順(更新含む)が前後しなければ、クエリで「表示」「SQLビュー」に SELECT 商品マスター.コード, Last(商品マスター.年月) AS 更新年月, Last(商品マスター.価格) AS 最新価格 FROM 商品マスター GROUP BY 商品マスター.コード ORDER BY 商品マスター.コード, Last(商品マスター.年月); で設定可能ですが... まあ確実なのは#1の方の方法ですね。
お礼
ありがとうございます。 せっかくですが、自分はSQLがわかっていないので 理解も少し難しかったです。
お礼
ありがとうございます。 まさに頭に描いていたのはこの処理です。 最大の出し方がわからなかったのですが、 グループ化で呼び出すのを思い出しました。 課題もクリアーです