2017-10-02 10 views
0

IDとシーケンス番号(SEQ)の開始番号を持つテーブルがあります。私はSEQシーケンシャル値の更新

私はこのような結果表を取得したいこの

ID  SQ SEQ 
---  -- --- 
100  0  11 
100  0  11 
100  0  11 
200  0  13 
200  0  13 
200  0  13 
200  0  13 

のような私のテーブルに基づいて、各IDのSQ番号を更新する:

ID  | SQ | SEQ 

100  11  11 
100  12  11 
100  13  11 
200  13  13 
200  14  13 
200  15  13 
200  16  13 

私が使用してこれをどのように行うことができますTSQL?

答えて

1

テストデータとの完全なサンプルコード

declare @tbl table(id int, sq int, seq int) 
insert into @tbl 
select 100,0,11 union all 
select 100,0,11 union all 
select 100,0,11 union all 
select 200,0,13 union all 
select 200,0,13 union all 
select 200,0,13 union all 
select 200,0,13 

select id,(ROW_NUMBER() over(partition by id order by id) + seq - 1) as sqn,seq from @tbl 

結果

0123この

select id,(ROW_NUMBER() over(partition by id order by id) + seq - 1) as sqn,seq from @tbl 

をお試しくださいます使用

id sqn seq 
100 11 11 
100 12 11 
100 13 11 
200 13 13 
200 14 13 
200 15 13 
200 16 13 
+0

ありがとうございました!それは魅力のように働いた。 – Kaur

0

試してみてください。

SELECT 
ID,ROW_NUMBER() OVER(ORDER BY ID) AS SQ,SEQ 
FROM YOUR_TABLE 

および更新のために、それは

update a set sq = rn 
    ID,ROW_NUMBER() OVER(ORDER BY ID) AS rn,SEQ 
    FROM YOUR_TABLE) as a