2009年09月24日

ORACLE 有効期間のあるデータの抽出方法

有効期間のあるデータの抽出方法

IDと連番で一意キーに対して発効と失効が定められているレコードの中から有効なレコードを抽出する。

(OTNの過去ログから)

select a.*
from
マスタテーブル a,
(
select id,max(連番) as 連番
from マスタテーブル
where 発効年月日<=sysdate and 失効年月日>sysdate
group by id
) b
where
a.ID=b.ID and
a.連番=b.連番


返信者  タイトル:RE[1]:有効期間のあるデータの抽出方法
hoge 2004-09-06 14:46
--------------------------------------------------------------------------------

分析関数を使用しない場合は以下のようになるかと思います。

select ID,連番,名称,発効年月日,失効年月日
from マスターテーブル a
where 連番 = (select max(連番)
from マスターテーブル b
where a.ID = B.ID and 発効年月日 <= trunc(sysdate) and 失効年月日 >= trunc(sysdate))
order by ID,連番;
posted by でんのー at 10:34| Comment(0) | TrackBack(0) | 仕事メモ
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/32363171
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック