電子書籍の厳選無料作品が豊富!

sql文について困っているので質問させてください。

以下のデータがあるとします。

番号  月日   金額
----------------------------
1    0512   100
1    0411   200
1    0310   300
2    0609   400
2    0708   500
2    0411   600
3    0523   700
3    0322   800


このデータを番号でグループ化し、
月日が最大のときの金額を取得したいです。
つまり、クエリの実行結果を以下のようにしたいです。


番号  月日   金額
----------------------------
1    0512   100
2    0708   500
3    0523   700


この場合、サブクエリを使って書けばほしい結果が得られると思いますが、
mysqlのバージョンが4.0.22なのでサブクエリが使えません。

サブクエリを使わないで上記の結果を得ることはできるのでしょうか?

よろしくお願いします。

A 回答 (2件)

すみません。


金額の桁あわせないと。でした

SELECT NO, MAX( concat(月日,lpad(金額,11,'0') ) ) AS temp
,left( MAX( concat( 月日,lpad(金額,11,'0') ) ) , 4 ) AS 月日x
, substring( MAX( concat( 月日,lpad(金額,11,'0') ) ) , 5, 99 ) AS 金額x
FROM テーブル
GROUP BY 番号
    • good
    • 0
この回答へのお礼

ありがとうございます。

こういう書き方があるんですね。

助かりました。
本当にありがとうございます。

お礼日時:2005/06/21 21:59

こんなんで



SELECT NO, MAX( concat(月日,金額 ) ) AS temp
,left( MAX( concat( 月日,金額 ) ) , 4 ) AS 月日x
, substring( MAX( concat( 月日,金額 ) ) , 5, 99 ) AS 金額x
FROM テーブル
GROUP BY 番号

どやろ。
    • good
    • 0

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


おすすめ情報