- ベストアンサー
Accessで前回発注分だけ抜き出すクエリの作成方法
- Accessで発注テーブルから、前回の発注分のレコードだけを抜き出すクエリの作成方法を教えてください。
- 発注テーブルの構成は商品コード、発注数、発注日です。A-1の2014/07/10の発注分、A-2の2014/07/12の発注分、B-3の2014/07/18の発注分を抜き出したいと思います。
- SQL文とモジュールが使えないため、クエリのデザインビューで作成方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
クエリのフィールドに商品コード、発注日を表示させます 「Σ」という集計ボタンを押します。 その集計項目で[商品コード]は「グループ化」、[発注日]は「最大」を選びます。 商品コードで"グループ化"することで、「商品コード毎の」という設定になります さらに[発注日]で"最大"に指定してるので、「商品コード毎の最大」という見方です。 SQL文はわからないとの事ですが、 もし上の説明もわからないようでしたら下記をコピーし、「表示」の切り替えを「SQLビュー」にして貼り付け、再度「デザインビュー」、「データシートビュー」に切り替えても今回は簡単な分なのでうまくいけると思います。 ただ、下記にある項目名が違う場合は修正してくださいね。 テーブル名は"発注"にしています。 テーブル名が違うときはこの「発注」と書いてあるところを置き換えてください。 他の項目名"商品コード"、"発注日"も同様に。 SELECT 発注.商品コード, Max(発注.発注日) AS 発注日の最大 FROM 発注 GROUP BY 発注.商品コード;
その他の回答 (1)
- 30246kiku
- ベストアンサー率73% (370/504)
テーブル名を ★★ と仮定します。 以下をクエリのSQLビューに記述後、デザイン表示して、 指定の仕方を確認してください。 データシートビューで表示すると、得たいものが表示されるかも・・・ SELECT * FROM ★★ AS Q1 WHERE 発注日=(SELECT Max(発注日) FROM ★★ WHERE 商品コード=Q1.商品コード); 意味を解説しておくと、 ・テーブル ★★ のものを全部表示しましょう SELECT * FROM ★★ 対象は・・・というと ・発注日が、表示しようとしている 商品コードの中で最大(直近)のもの 表示しようとしている発注日 = ( SELECT Max(発注日) FROM ★★ WHERE 商品コード= ▲▲ ) この ▲▲ が、表示しようとしている商品コード 表示しようとしているテーブル ★★ に、別名 Q1 を付けておいて FROM ★★ AS Q1 ▲▲ 部分に Q1.商品コード ・・・ 表示しようとしている商品コード つまり、 ・表示しようとしている発注日が ・表示しようとしている商品コードの最大(直近)の日付のもの という指定方法になっています。 ※ 使えないのでできません・・・ このフレーズは、いつまで有効なのでしょうか? 上記は追加/更新可能ですが見るだけで良いのなら以下の方法も 以下の内容でクエリ「☆☆」を作っておきます。 SELECT 商品コード, Max(★★.発注日) AS 発注日 FROM ★★ GROUP BY 商品コード; このクエリ ☆☆ と、元々のテーブル ★★ を表示して 商品コード、発注日 の2つを結び付けたクエリを作成しデータシートビューで表示してみます。 ちなみに SQL ビューで見た時の内容は SELECT ★★.* FROM ★★ INNER JOIN ☆☆ ON ★★.商品コード=☆☆.商品コード AND ★★.発注日=☆☆.発注日; それぞれ、SQL ビューで記述後、デザインビューでの記述方法を確認してください。
お礼
ご回答ありがとうございました。SQL文は苦手ですが、試してみます。
お礼
ご回答ありがとうございました。いただいた内容で試してみます。どうもありがとうございました。