SQLでの集計方法がわからず質問をさせていただきます。
改版のたびに商品名を変える商品がたくさんあるとします。
(下記のような感じで、履歴番号が大きいほど新しい)
商品コード 履歴番号 商品名
123456 8 元祖○○
123456 7 ○○外伝ターボ
123456 6 ○○外伝
123456 5 スーパー○○2
123456 4 スーパー○○
123456 3 ○○3
123456 2 ○○2
123456 1 ○○
この場合に、各商品コードの履歴番号が最大(最新)の、
「商品コード」「改版履歴番号」「商品名」を取得するには
どのようなSQLを作成すればいいでしょうか?
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
度々です。
#4の回答の複数行出力記述で変えるのは関数名
順位付けの方法が
http://msdn.microsoft.com/ja-jp/library/ms189798 …
このようにありますので
No.4
- 回答日時:
ついでだからRowNumber手法も
select *
from (
select row_number() over (PARTITION BY 商品番号 order by 履歴番号 desc) 順,*
from テーブル)
where 順=1
順ってカラムが先頭に付きます。
今回の場合は履歴番号で必ず1つになりそうですが最大の物が2個になる場合、先の回答では2行出るので
RowNumber関数の場合は PARTITION を変えれば2行出すことも可能だし
色々応用も効くと思いますので
No.3
- 回答日時:
DBは何をお使いですか?
私が今使ってる環境では#2の回答者さまの構文で実行出来ませんでした。
(SQL Server 2005)
なので他の参考として同じ手法で
select I1.*
from テーブル I1
inner join (select 商品番号,
max(履歴番号) 最大番号
from テーブル
group by 商品番号) I2
on I1.商品番号 = I2.商品番号
AND I1.履歴番号 = I2.最大番号
これならAccess、Oracleでも動くかな?
Accessならエイリアスの I1, I2, 最大番号 の前にASをつけないといけないかも。
SQL ServerならRowNumber関数を使って順位を振り1番目だけを取り出す、なんてのが最近の手法かも
http://msdn.microsoft.com/ja-jp/library/ms186734 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Visual Basic(VBA) EXCEL関数LOOKUPとFILTERについての質問です 1 2022/12/21 05:53
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- 国産バイク 大型バイク カワサキz900rsに付ける ヨシムラのマフラーの質問です、 【 商 品 I D 】14 2 2023/06/27 13:43
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- ネットスーパー 注文していない商品が中国から届きましたが・・・これって? 5 2022/04/04 04:37
- その他(買い物・ショッピング) JANコードの登録について 1 2022/07/23 14:19
- Excel(エクセル) ある文字を含む際に、値を返す数式についてです 5 2022/08/28 16:58
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
〜のような結果を出すためのSQL...
-
Accessで別テーブルの値をフォ...
-
Accessでのレコード存在チェック
-
Access:抽出して、色をつけたい。
-
最新の日付とその金額をクエリ...
-
【アクセスVBA】テーブルにフィ...
-
MAX関数と複数問い合わせ?
-
access 自動採番 「10-AA-000...
-
条件をつけて日付の古い行を抜...
-
初心者Mysqlの関数のsubstring...
-
ACCESSで大量の更新を行うと「...
-
ファイル書込みで一行もしくは...
-
Date型にNULLをセットしたい V...
-
Excelで、改行がある場合の条件...
-
DataGridViewの、選択されてい...
-
使うべきでない文字。
-
実績累計の求め方と意味を教え...
-
Access終了時の最適化が失敗?
-
Excelでセルの書式設定を使用し...
-
JSPのNULLレコード表示について...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
access 自動採番 年が変わる...
-
最新の日付とその金額をクエリ...
-
Accessでのレコード存在チェック
-
【アクセスVBA】テーブルにフィ...
-
アクセスで「空き番」の確認
-
vba 直前の操作はキャンセルさ...
-
条件をつけて日付の古い行を抜...
-
質問です。 下記のテーブルとデ...
-
【Access】選択クエリのグルー...
-
[Access]異なるレコード間の文...
-
Access:抽出して、色をつけたい。
-
Access 文字+年ごとの自動採番
-
Accessで日付が変わると番号が...
-
access 自動採番 「10-AA-000...
-
Recordset.FindFirstについて
-
ACCESSでの行番号の自動採番
-
access2003で学籍番号から生徒...
-
【SQL】existsでの商演算
-
サイベースには、オラクルのROW...
おすすめ情報