• 締切済み

検索結果の再ソートを試みる。

項番 商品番号 生産日 賞味期限 A B C D E 1 1 200407 200507 2 1 200307 200407 3 2 200404 200504 4 3 200406 200407 5 3 200405 200406 6 3 200404 200405 上記のテーブルがあったとして、以下の処理を実現するSQLを考えます。 1. 上記のものを、商品番号の昇順・生産日の降順(最新)でソートし、 商品番号毎に生産日が最新のものを抽出します (期待される結果:項番3、4、1の順で3つ抽出) 2. 取得したのを賞味期限の昇順にソートします ※項目は、項番商品番号生産日賞味期限の他にもABCDE……と存在するものとします。 カーソルオープン時に上記1、2を満たす事が条件です。 上記SQLの記述について、どなたか助言おねがいします。

みんなの回答

回答No.1

文章1の抽出結果は使用されるのでしょうか? 使用されないなら、次のSQL文で抽出可能だと思います。 SELECT A.項番, A.商品番号, A.生産日, A.賞味期限, A.A, A.B, A.C, A.D, A.E FROM テーブル名 A, (SELECT 商品番号, MAX(生産日) MAX_生産日 GROUP BY 商品番号) B WHERE A.商品番号 = B.商品番号 AND A.生産日 = B.MAX_生産日 ORDEY BY A.賞味期限, A.商品番号 DBMSによってはサブクエリーが使用できないなどの理由で、動作しないかもしれません。