2017-07-14 11 views
-2

私はテーブルid_track履歴を持っています。これは異なるタイムスタンプでIDを更新しています。私はsqlの反復検索によって最新のIDに統合したいです。どのようにSQLでそれを行うことができますか?SQL最新のレコードと更新のトラッキング

表: OLD_ID NEW_ID TIME-STAMP 101 103 1/5/2001 102 108 2/5/2001 103 105 3/5/2001 105 106 4/5/2001 110 111 4/5/2001 108 116 14/5/2001 112 117 4/6/2001 104 118 4/7/2001 111 119 4/8/2001 所望の結果のテーブル: OLD_ID LATEST_ID LAST TIME-STAMP 101 106 4/5/2001 102 116 14/5/2001 104 118 4/7/2001 110 111 4/5/2001 112 117 4/6/2001 111 119 4/8/2001

enter image description here

+0

stackoveflowは無料のコーディングサービスではありません。最初に問題を解決しようとする必要があります。つぶれた場合は、特定のヘルプを求めてください。どのようなクエリを試しましたか?また、 'old_id' 101が' new_id' 106とどのように結びついているのか説明しようとしていません。それには明らかな論理的理由はありません。イメージでは、色を使用しています - 何かを意味していますか?何? –

+0

テーブルold_id 101に新しい値103があり、103が105に変更され、105が106に変更されるため、101には最新のID 106が割り当てられます。これは相関SQLクエリによって実行できます。 –

+0

あなたが説明していないこのデータについて知っていることがあります。 101を106に関連付ける何か他のものがなければなりません...あなたはそれが何であるかを説明していません。 –

答えて

0

はold_id SELECT、 (old_id = a.old_id CONNECT WITH MAX(NEW_ID) START B TEST01 FROM を選択BY old_id =前のnew_id) new_id、 (select time_stamp FROM test01 c NEW_ID =(old_id = a.old_id CONNECT BY old_id = PRIOR NEW_ID WITH TEST01 Bから STARTをMAX(NEW_ID) 選択)) TIME_STAMP (TEST01 CからNEW_ID 選択)NOT IN old_id TEST01 FROM ORDER BY old_id ASC;

ここで、test01はデータを持つテーブルです。私たちはSTART WITH ..を使用しなければなりません。先に接続してください

関連する問題