質問: 変数) order by 更新日付 asc 例えば、変数として2014が来た場合は、履歴テーブルより 2014 201405 2014 258087 が選択されて、請求テーブルの更新日付を見て古い方を取ってくるので 結局258087 20140412が取得されます。この代わりとなる、pro*cで記述できる sqlはどんなのがありますでしょうか?
回答: 見直したら、そもそもの条件がおかしいような気がします。 請求テーブルには[加入者id]があるようには見えない。 > が選択されて、請求テーブルの更新日付を見て古い方を取ってくるので > 結局258087 20140412が取得されます。 201405 20140922が欲しいの? 最初の1レコードを取得するロジック? なら、現行のコードのまま、 > order by 更新日付 asc を order by 更新日付 desc にする。 直積使ってテーブル結合したらどうなるのかな? select 色々 --列名をt1、 t2で修飾してね from 請求テーブル t1, 請求テーブル t2 where t1.識別id = t2.識別id and t2. 加入者id = 変数 order by t2.更新日付 desc ; create view はググって下さい。 viewにするときはwhere条件の and t2. 加入者id = 変数 は不要。viewに対してwhereで変数を指定して下さい。