アプリ版:「スタンプのみでお礼する」機能のリリースについて

Oracle9i+VB6.0で開発をしています。

各店舗毎のデータを以下のように持っています。
T_詳細データ
==============
店舗CD|項目CD|売上
-----------
001|001|100
001|002|800
001|003|200
002|001|710
002|002|110
002|003|210
002|004|100
003|001|120
003|003|110
003|004|620

店舗CD毎の最大売上の項目CDを取得したいのです。

店舗CD|項目CD|売上
-----------
001|002|800
002|001|710
003|004|620

SELECT
 店舗CD ,
 MAX(売上)
FROM
 T_詳細データ
GROUP BY
 店舗CD

としてしまうと、どうしても項目CDが取得できません。
(当たり前ですが・・・)

MAX() OVER(...)というのを使うのかな、と思ったのですが
うまくできませんでした。

アドバイスよろしくお願いいたします。

A 回答 (1件)

サブクエリを使えばできると思います。



ただ、売り上げが同じ場合には、複数表示されると思います。

select 店舗CD,項目CD,売上 from T_詳細データ
where
(店舗CD,売上) in (select 店舗CD,max(売上) from T_詳細データ group by 店舗CD)

これで上手くいくと思いますが、いかがでしょうか?
    • good
    • 0
この回答へのお礼

すばらしいっ!!!!
こんなことができるとは!!!

試してみましたが、ばっちり望み通りの結果を得ることができました。

これって使いこなせると、すごく色々応用が利きそうですね。
自分でも、もうちょっと調べて使えるようにしてみます。
アドバイスありがとうございました。

お礼日時:2007/08/24 09:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す