質問: sql max関数を検索条件にする。 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 どなたかお願いします。 前にも同じような質問をさせていただきましたが、 解決できずにこまっています。
回答: 下記のsql文を参照してください。 select tb1.id , tb1.hinban , -- 品番(hinban) [ varchar2(20) null ] tb1.kingaku , -- 金額(kingaku) [ number(7,0) null ] tb1.hizuke -- 日付(hizuke) [ varchar2(8) null ] from test_table tb1 inner join( select hinban , -- 品番(hinban) [ varchar2(20) null ] max(hizuke) as hizuke -- 日付(hizuke) [ varchar2(8) null ] from test_table group by hinban -- 品番(hinban) [ varchar2(20) null ] ) tb2 on tb1.hinban = tb2.hinban -- 品番(hinban) [ varchar2(20) null ] and tb1.hizuke = tb2.hizuke -- 日付(hizuke) [ varchar2(8) null ] 注:sql文実行の結果は添付画像を参照してください。