2016-09-07 27 views
1

親レコードを作成する必要がある孤立レコードがいくつかありますが、最初にユーザー名の最初のインスタンスのIDを持つ次のレコードが必要です。T-SQLの親IDと一致する子ID

DECLARE @Test TABLE 

(
ID INT 
,UserName NVARCHAR(30) 
,FileID INT 



) 
INSERT INTO @Test VALUES (1,'TT',1) 
INSERT INTO @Test VALUES (2,'TT',2) 
INSERT INTO @Test VALUES (3,'TT',3) 
INSERT INTO @Test VALUES (4,'WW',4) 
INSERT INTO @Test VALUES (5,'WW',5) 
INSERT INTO @Test VALUES (6,'WW',6) 
INSERT INTO @Test VALUES (7,'WW',7) 
; 
WITH CTE 
AS 
(
    SELECT *,ROW_NUMBER() OVER(Partition by UserName Order by UserName) RN 

    from @Test 
) 
SELECT * 
    FROM CTE 
    ORDER BY Id ASC 

enter image description here

そして、私はこれを取得するために探しています:親レコードに変更、私はこれまでのところ、これを持って enter image description here

ID UserName FileID RN 
1 TT   1  1 
2 TT   1  2 
3 TT   1  3 
4 WW   4  1 
5 WW   4  2 
6 WW   4  3 
7 WW   4  4 

私はからID列を更新しているよ。これに

ID UserName FileID 
627 TT    626 
628 TT    626 
629 TT    626 
461 WW    460 
462 WW    460 
463 WW    460 
464 WW    460 

ID UserName FileID 
627 TT   627 
628 TT   627 
629 TT   627 
461 WW   461 
462 WW   461 
463 WW   461 
464 WW   461 
+0

期待される結果をテキストとして入力してください – TheGameiswar

答えて

0

使用ランク

WITH CTE 
AS 
(
    SELECT ID,USERNAME,RANK() OVER (ORDER BY USERNAME) AS FILEID, 
    ROW_NUMBER() OVER(PARTITION BY USERNAME Order by UserName) RN 

    from @Test 
) 
SELECT * 
    FROM CTE 
    ORDER BY Id ASC 
+0

私が何をしようとしているのかは分かりませんが、私はFileIDを更新する必要があると言わざるを得ないでしょう: – SSMSJ

+0

別の番号で試しても動作しません私が探しているものにとどまります。 – SSMSJ

0
DECLARE @Test TABLE 

(
ID INT 
,UserName NVARCHAR(30) 
,FileID INT 



) 
INSERT INTO @Test VALUES (627,'TT',626) 
INSERT INTO @Test VALUES (628,'TT',626) 
INSERT INTO @Test VALUES (629,'TT',626) 
INSERT INTO @Test VALUES (461,'WW',460) 
INSERT INTO @Test VALUES (462,'WW',460) 
INSERT INTO @Test VALUES (463,'WW',460) 
INSERT INTO @Test VALUES (464,'WW',460) 
; 

UPDATE T 
SET FILEID = (SELECT TOP 1 ID FROM @Test TT WHERE T.FILEID = TT.FILEID) 
FROM @Test T; 

SELECT * FROM @Test ORDER BY ID 

結果:

ID UserName FileID 
461  WW  461 
462  WW  461 
463  WW  461 
464  WW  461 
627  TT  627 
628  TT  627 
629  TT  627 
関連する問題