• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLのとり方を知りたいです。)

SQLで最新の配送日と到着日を取得する方法

このQ&Aのポイント
  • 依頼No.にぶらさがる配送先が3か所あります。この中で一番新しい(=若い)日付の配送日と到着日を取得したいです。
  • 配送日と到着日はワンセットと考えて、新しい日付の配送日が取得できれば、自動的に隣の到着日も取得できます。
  • どのようにSQL文を書けば良いか分かりません。教えていただけませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.2

not exists を使って select 依頼no発送日,到着日 from table名 a where not exists(select * from table名 b where a.依頼No. = b.依頼No and a.発送日 > b.発送日); 分析関数が使えるなら select 依頼no,発送日,到着日 from (select 依頼no,発送日,到着日,row_number() over(partition by 依頼no order by 発送日) rnum from table名) where rnum = 1; とかでしょうか。

masatt0027
質問者

補足

さっそく御回答頂きありがとうございます。 すいません、説明不足でした。 発送日,到着日はtable名 bのみにしかありませんでした・・・ not existsで書いてくださった文で、 最終行のand文だけがうまくいきません・・・すいません。

その他の回答 (1)

  • kouta77
  • ベストアンサー率20% (185/896)
回答No.1

select 発送日,到着日 from table名 a where 発送日 = (select max(発送日) from table名 b where a.依頼No. = b.依頼No)

masatt0027
質問者

補足

さっそく御回答頂きありがとうございます。 すいません、説明不足でした。 発送日,到着日はtable名 bのみにしかありませんでした・・・

関連するQ&A