
「製品の販売状況が記録してあるテーブル」から、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で質問しましょう!
似たような質問が見つかりました
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- 飲み物・水・お茶 ネスプレッソ コーヒークリーマー と ネスレクレマトップ はほぼ同じ品でしょうか 1 2023/06/08 12:36
- MySQL SQLで日付別のIDを生成するには 3 2022/10/09 10:34
- その他(AV機器・カメラ) ソニーストア 1 2022/12/22 10:02
- Excel(エクセル) Excelで在庫表(クエリ、ピボット) 2 2022/04/11 17:11
- 査定・売却・下取り(車) 現行シビックタイプRって、 納車までの期間の長期化や、製造一時停止や、最後のガソリン車のタイプRかも 1 2023/05/18 09:56
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- その他(ビジネス・キャリア) 皆さんならどちらを選びますか? なるべく長く勤めていたいです。 ①sns運用事務スタッフ SNSを活 1 2022/05/08 21:03
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- デジタルカメラ ミラーレス一眼カメラは、キャノンが独り勝ちなの? 5 2022/05/25 07:59
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
ACCESS クエリで重複データを最新の1件だけ表示
Access(アクセス)
-
ACCESSの集計クエリで3件ある場合の[先頭][最後]が正しく抽出できないんです。
その他(データベース)
-
-
4
ACCESSのクエリー抽出条件にIIFを使用して
Access(アクセス)
-
5
アクセスの初心者の質問です(空白の場合に他のフィールドを表示させたい。)
Access(アクセス)
-
6
ACCESS 一番最新の日付の金額を出したいのですが・・
その他(データベース)
-
7
ACCESSのクエリで集計で、先頭・最後とは?
その他(データベース)
-
8
ACCESSのフォームで次のレコードに移動しない方法を教えてください
その他(データベース)
-
9
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
10
access の 最終レコードの判定はどう記述しますか
Access(アクセス)
-
11
「#エラー」の回避
Access(アクセス)
-
12
Accessで別mdbのテーブルをコピー
その他(プログラミング・Web制作)
-
13
グループ毎の最大値を持つデータのみ抽出したい
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
[Access]異なるレコード間の文...
-
最新の日付とその金額をクエリ...
-
access 自動採番 年が変わる...
-
候補キーの求め方
-
vba 直前の操作はキャンセルさ...
-
【SQL】existsでの商演算
-
Access 文字+年ごとの自動採番
-
【Access】選択クエリのグルー...
-
質問です。 下記のテーブルとデ...
-
条件をつけて日付の古い行を抜...
-
アクセスで「空き番」の確認
-
access 自動採番 「10-AA-000...
-
【アクセスVBA】テーブルにフィ...
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
OracleのSQL*PLUSで、デー...
-
select句副問い合わせ 値の個...
-
select insertで複数テーブルか...
-
実績累計の求め方と意味を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
最新の日付とその金額をクエリ...
-
【アクセスVBA】テーブルにフィ...
-
access 自動採番 年が変わる...
-
Accessで日付が変わると番号が...
-
Accessでのレコード存在チェック
-
Recordset.FindFirstについて
-
vba 直前の操作はキャンセルさ...
-
access 自動採番 「10-AA-000...
-
Access 文字+年ごとの自動採番
-
アクセスで「空き番」の確認
-
[Access]異なるレコード間の文...
-
条件をつけて日付の古い行を抜...
-
【Access】選択クエリのグルー...
-
Access:抽出して、色をつけたい。
-
ACCESSでの行番号の自動採番
-
Access VBAで更新履歴を追いたい
-
sqlで質問です。 Aテーブルの登...
-
Oracle 8i に入っている値が、...
-
質問です。 下記のテーブルとデ...
おすすめ情報