2017-12-21 10 views
-2

どのように私は、以下のシナリオから更新行1列のフィールド

TABLEをテーブルを更新します:DIM_SCLASS

SCLASS_CODE | GL_CLASS_CODE | RPT_GRP | UW_YEAR_START| UW_YEAR_END 
PA01  | 06   | P  | 1900  | 2017 
PA01  | 06   | P  | 1900  | 2020 
PA01  | 05   | V  | 2021  | 2500   

私の質問: 1.どのように私はROW 2を更新しませんUW_YEAR_STARTここで値はROW 1から取得されますUW_YEAR_END?

上記の画像はシナリオにあります。 enter image description here

+0

何を試しましたか?なぜそれは動作しませんでしたか?なぜ行1と行2を使用するのですか?なぜ行1と行3を使用しないのですか? – JeffUK

+0

最初の行は、履歴データを保存する必要があるレコードです。 UW_YEAR_STARTは2017、UW_YEAR_ENDは2020です。UW_YEAR_STARTは2行目のUW_YEAR_ENDを+1して更新されます。 – user3260162

+0

私はここで私の質問を投稿するのは難しいですテーブルラインはこちら。私はExcelのすべてのデータの動きを持っていますが、ここにどのように置くのかはわかりません。それは大丈夫ですか?私の質問を電子メールで送付します – user3260162

答えて

0

これにより、すべての行が更新されます。 WHERE句を追加して、必要に応じて更新される行を制限します。

UPDATE d 
SET d.UW_YEAR_START = LAG(d.UW_YEAR_END,1) OVER (ORDER BY d.UW_YEAR_END asc) 
FROM DIM_SCLASS d 
0

これは結合で行うことができます。

update DIM_SCLASS 
set r1.UW_YEAR_START = r2.UW_YEAR_START 
FROM DIM_SCLASS r1 
join DIM_SCLASS r2 
on r1.SCLASS_CODE = r1.SCLASS_CODE -- YOU CAN USE 1 = 1 OR SOME OTHER CONDITION IF NECESSARY 
where r1.ROW_NUMBER() = 1 
AND r2.ROW_NUMBER() = 2; 
+0

親愛なるmtr.webあなたにメールがありますか? – user3260162

+0

私は私の個人的なEメールを宣伝しないようにしていますが、その理由によって...どうして尋ねますか? –

+0

私はあなたに私のシナリオを投稿し、私の正確な質問を理解するかどうかを確認することができます。 – user3260162

関連する問題