Press "Enter" to skip to content

SQL グループ毎の最大値の行を取得

部門コード、運用開始年月日、部門名 の項目をもつ『部門マスタ』というテーブルがあるとして

部門コード、運用開始年月日 の項目がキーだとして

組織変更のあった部門は新しくレコードが作成されて蓄積させる運用だったとして

 

部門コード毎の最新の部門名を取得したい場合

 

 まずコード毎でグルーピングして「運用開始年月日」が一番大きいもの取得

SELECT 部門コード ,MAX(運用開始年月日) AS 年月日

FROM 部門マスタ

group by 部門コード

 

 –上記のSELECT文をサブクエリ―として部門コードと一番大きい運用開始年月日を元のテーブルに紐づけ

SELECT AAA.部門コード,AAA.部門名

FROM 部門マスタ AS AAA INNER JOIN (

SELECT 部門コード ,MAX(運用開始年月日) AS 年月日

FROM 部門マスタ

group by 部門コード

) AS BBB

ON AAA.部門コード = BBB.部門コード

AND AAA.運用開始年月日 = BBB.年月日

Comments are closed.