質問: SQL MAX関数を検索条件にする。 わかる方がいれば助けてください。 下記のようなデータのテーブルあります。 ID 品番 金額 日付 OUTLET 210 00182-1080 5600 20090915 OUTLET 214 00182-1080 5600 20090916 OUTLET 217 00182-1080 5600 20090917 OUTLET 50 00182-1080 5600 20090609 OUTLET 437 00191-1082 3300 20100305 BLK09SS703 00191-1082 5500 20090703 OUTLET 141 00191-1082 5500 20090717 OUTLET 170 00191-1082 5500 20090806 このテーブルデータの各品番について最新日付のデータのみを出力したいのですが、 方法がわかりません。group byでHAVING検索なども試しましたがうまくいきませんでした。 <抽出したいデータ> ID 品番 金額 日付 OUTLET 217 00182-1080 5600 20090917 OUTLET 437 00191-1082 3300 20100305 どなたかお願いします。 前にも同じような質問をさせていただきましたが、 解決できずにこまっています。
回答: 相関サブクエリを使っても出来ますね。 テーブルの定義は1の方と同じとして、下記の様になります。 例) -------------------------------------------------- SELECT * FROM TEST_TABLE a WHERE NOT EXISTS ( SELECT 1 FROM TEST_TABLE b WHERE a.HINBAN = b.HINBAN AND a.HIZUKE < b.HIZUKE ) ------------------------------------------------------ 「各品番について最新日付のデータ」は以下の様に読み替えられます。 「『同じ品番でより新しい日付の別のデータ』が無いデータ」 これをSQLで表現していることになります。 参考URL: