
「製品の販売状況が記録してあるテーブル」から、Accessの選択クエリのグループ化を利用して、「1つの製品番号に対し、最大日付の中の最大IDを抽出する」というアクションを行いたいのです。
例えば下の<テーブル例>だったら、
●製品100・・・2004/08/20 ID3 販売停止
●製品111・・・2004/05/10 ID6 出荷停止
を取り出したい訳です。
・製品番号(グループ化/昇順)
・日付(グループ化/昇順/最大)
・ID(グループ化/昇順/最大)
という選択クエリを組んだのですが、抽出結果は
●製品100・・・2004/08/20 ID9 販売停止
●製品111・・・2004/05/10 ID6 出荷停止
を選んでしまいます。
違うのに! そんな事したいんじゃないのに!(ToT)
どなたか詳しい方、助けてください。
<アクション>
製品の販売状況が記録してあるテーブルから、『最大の日付で最大のID』の「販売状況」を抽出したい。
<テーブル例>
製品番号 日付 ID販売状況
1002003/02/01 4終了
1002004/07/01 9出荷停止
1002004/08/01 2一時出荷停止
1002004/08/20 3販売停止
1002004/08/20 1終了
111 2003/01/15 5 終了
111 2004/05/10 6 出荷停止
111 2004/05/10 2 終了
No.2ベストアンサー
- 回答日時:
ロジック的には No.1 の方の方法と同じことなんですが、Access 2000 のあたりから SQL の中にサブクエリーを記述できるようなので(記憶が定かではないのですが、Access97 まではできなかったような気がします。
)、Access 2000 以降であれば、クエリーの SQL ビューに次のように記述すれば目的の抽出が可能です。(テーブルを T_販売状況 としています。)
SELECT T3.製品番号, T3.日付, T3.MAXID, T4.販売状況
FROM T_販売状況 AS T4 INNER JOIN (
SELECT T1.製品番号, T1.日付, MAX(T1.ID) AS MAXID
FROM T_販売状況 AS T1 INNER JOIN (
SELECT 製品番号, MAX(日付) AS MAX日付
FROM T_販売状況
GROUP BY 製品番号) AS T2
ON ( ( T1.製品番号=T2.製品番号) AND (T1.日付=T2.MAX日付) )
GROUP BY T1.製品番号, T1.日付) AS T3
ON ( T3.製品番号 = T4.製品番号 AND T3.日付 = T4.日付 AND T3.MAXID = T4.ID )
回答ありがとうございます。お礼が遅くなり申し訳ありませんでした。
なるほど・・・SQLを組むんですね?SQLか・・・ふぅ(ため息)。でも私はダメでも同僚はSQLもいけると思うので、彼女にこの回答を元に考えてもらおうと思います。
ありがとうございました。
No.1
- 回答日時:
一つのクエリでは無理なのでは?まず
・製品番号(グループ化/昇順)
・日付(最大)
で製品番号の最大日付を抽出
元のテーブルとこのクエリを連結(製品番号と日付)して
・製品番号(グループ化/昇順)
・日付(グループ化/昇順)
・ID(最大)
早速の回答、ありがとうございます。
そうなんですよね。
クエリを複数回組めば取り出せるんですが・・・。
同僚と「1回のクエリで取り出せなかったっけ?今までは出来ていたと思うんだけど」という話になりまして。
「今まで出来ていた」と思い込んでいたのは、単にデータ内容にそういうものがなかっただけかも・・・という気もして来ました。1回のクエリで終われば簡単なのに・・・ダメなのかなあ(^^;)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスで「空き番」の確認
-
社員DBを作る
-
最新の日付とその金額をクエリ...
-
Oracleでの文字列連結サイズの上限
-
OracleのSQL*PLUSで、デー...
-
select句副問い合わせ 値の個...
-
MySQLで MAX()とGROUP BYを使う...
-
実績累計の求め方と意味を教え...
-
DataGridViewにてセル以外をク...
-
SELECTで1件のみ取得するには?
-
集計後の数値が倍になる
-
Access終了時の最適化が失敗?
-
外部結合とor条件混在の記述方法
-
Oracle8iでSQL文の引数について
-
GROUP BYを行った後に結合した...
-
Excelで、改行がある場合の条件...
-
ADOのRecordCountプロパティに...
-
Excelでセルの書式設定を使用し...
-
主キーに重複があるレコードの...
-
Accessデータシートビューの行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
最新の日付とその金額をクエリ...
-
[Access]異なるレコード間の文...
-
Access:抽出して、色をつけたい。
-
Recordset.FindFirstについて
-
vba 直前の操作はキャンセルさ...
-
【アクセスVBA】テーブルにフィ...
-
〜のような結果を出すためのSQL...
-
Accessで日付が変わると番号が...
-
Accessでのレコード存在チェック
-
アクセスで「空き番」の確認
-
条件をつけて日付の古い行を抜...
-
access 自動採番 年が変わる...
-
SELECT * FROM `生徒名簿` INNE...
-
【Access】選択クエリのグルー...
-
access 自動採番 「10-AA-000...
-
サイベースには、オラクルのROW...
-
【SQL】existsでの商演算
-
Access 文字+年ごとの自動採番
-
accessのフォームで製品番号と...
おすすめ情報