スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

group by したグループ内で最新の日付とかを取得する方法

[元のデータ]
ID   | 日付   | 担当   | 金額
A-01  |2010-09-01 |Angas    |1000
A-01  |2010-08-31 |Mayor    |1500
A-01  |2010-08-25 |Angas    |2000
B-01  |2010-08-30 |Roger    |1350
B-01  |2010-09-01 |Angas    |2000
B-01  |2010-08-20 |Roger    |1350

[結果として欲しいデータ]
ID   | 日付   | 担当   | 金額
A-01  |2010-09-01 |Angas    |1000
A-01  |2010-08-31 |Mayor    |1500
B-01  |2010-08-30 |Roger    |1350
B-01  |2010-09-01 |Angas    |2000

のような感じで、ID,担当のグループ内で最新の日付の金額を得るためのSQL。
普通は、group byしたサブクエリーとかを発行したりしなければならないかと思ってたけど
下記のSQLで取得可能。


select *
from t1 a
where
 not exists(
  select * from t1 b
  where a.id = b.id
  and a.担当 = b.担当
  and a.日付 < b.日付)


参考URL
スポンサーサイト

トラックバック

コメント

コメントを残す

Secret


プロフィール

U2K

Author:U2K
いろいろプログラムに関しての覚え書きをちょくちょくと書いていきます。

オススメ










オススメ

忍者AdMax

u2k on Twitter

最近の記事


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。