初心者ですので的外れな質問や記述不足がありましたら、申し訳ありません。
sqlplusで
Id(number型)
day(date型)
のテーブルを作成し
1,2006年1月1日
2,2006年3月3日
3,2006年5月5日
4,2006年7月7日
5,2006年10月10日
の五行が挿入されています。
このテーブルから実行時に1番近い日付のId(この場合は5)を表示するSQLを発行したいのですが、
<=current_dateのmaxとしたところ、実行時以降の日付があっても直近の日付を持つIdを得られるように、との指摘がありました。
having句でmin(abs(current_date-day))を使用してIdを表示すると考えたのですが、
select id from テーブル名 group by id having min(abs(current_date-day));
としたところ、式がありませんとエラーが表示されました。
このような問い合わせではインラインビューを使うと良いというサイトを見かけたのですが、インラインビューについてよく理解ができませんでした。
この場合どのような考え方をすれば良いのか、方向性がそもそも間違っているか、などご指摘いただければと思います。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/14 13:21
2016/11/14 23:47