
初めまして社内の登録データの抽出について困っております、ご助言をお願いいたします
環境:MSSQLServer2000
商品のマスターテーブルがありそこに登録されたカテゴリ別の最新型番を抽出する方法です
例)
Table1
code | cate | updtime
item1 | pc | 2009/10/13
item2 | pc | 2009/10/13
item3 | pc | 2009/10/15
itema | soft | 2009/10/10
itemb | soft | 2009/10/10
itemc | soft | 2009/10/10
itemA | supply | 2009/10/14
itemB | supply | 2009/10/15
itemC | supply | 2009/10/15
上記のようなデータの入った商品マスターテーブルから
下記のように各カテゴリで最も新しい登録商品をそれぞれ1件ずつ抽出したいのです
item3 | pc | 2009/10/15
itemc | soft | 2009/10/10
itemC | supply | 2009/10/15
updtimeで[order by]をかけてみると新しい物順に抽出できますが、カテゴリがばらばらになってしまいます。
何か良い方法がありませんでしょうか。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
SQL Server 2000でこれを一発でやるのは結構厄介ですね。
しかも、示して頂いている例だけだと、このテーブルには主キーがないのかもしれないと思えます。
softのように同じupdtimeのものが3つある場合に、Itemcを選ぶ基準がわからなかったので、
とりあえずcodeの降順で一番大きいものにしておきました。
実態に合わせて調整してください。
SELECT
(SELECT TOP 1 code FROM table1
WHERE cate=t.cate and updtime=t.upddtime
ORDER BY code DESC),
t.cate,
t.updtime
FROM
(SELECT cate,max(updtime) updtime
FROM table1
GROUP BY cate) t
掲載していただいた内容で、希望したような動作ができました。
こう言う副問合せと言うんですかね
件数が結構あるのでwhere句を追加して2009年10月以降にしたらかなり早く動くようになりました。
非常に参考になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Excel(エクセル) Excelでデータを抽出するに良い方法 9 2023/02/06 12:42
- その他(Microsoft Office) Outlookメール 連絡先の検索について 〈 ご説明 〉 Windows PC の Outlook 1 2022/09/23 14:43
- Windows 10 Windows11のパソコンについての質問2。 5 2022/12/03 14:16
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- 会計ソフト・業務用ソフト Excelで売上げデータの中の任意の商品の合計を出したい 3 2023/01/18 18:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日付データの抽出方法を教えて...
-
SQLサーバのデータをエクセルに...
-
エクセル関数 文字(ハイフン...
-
こういうビューを抽出したいの...
-
5000万件の個人の名寄せ方法
-
ACCESSの集計クエリで3件ある...
-
Access97 クエリの表示
-
アクセスでのデータの抽出について
-
エクセルで部署ごとの退職者数...
-
VBAでビット情報にてデータ抽出
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
iserease のDB2 UDBに対してODB...
-
Accessで別テーブルの値をフォ...
-
access2003で学籍番号から生徒...
-
OracleのSQL*PLUSで、デー...
-
DataGridViewの、選択されてい...
-
クライアントからのDBアクセス
-
Date型にNULLをセットしたい V...
-
MERGE文を単体テーブルに対して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
抽出したデータを修正して元の...
-
ACCESSの集計クエリで3件ある...
-
ACCESSのクエリで同じSQL文だが...
-
エクセル関数 文字(ハイフン...
-
アクセス クエリ-で空白以外の...
-
<SQL>条件付きで最小値レコード...
-
MS-DOSコマンドプロンプトを途...
-
商品テーブルからカテゴリ別の...
-
SQLサーバのデータをエクセルに...
-
ADO接続からのACCESSデータシー...
-
SQLServerからエクセルにデータ...
-
SQLを駆使したデータ抽出ってど...
-
アクセスでのデータの抽出について
-
VBA CSVファイルを文字列に
-
空白文字とスペースの検索
-
MySQL のWHEREでの抽出範囲につ...
-
エクセルデータの末尾の改行を...
-
PS2のBGM抽出
-
MYSQLで、今日まで過去30日間の...
-
Excel関数:別テーブルから条件...
おすすめ情報