2014-02-27 72 views
0

我很難制定問題。但是,我最好在此描述它。循環訪問Temp表中的SQL QUERY記錄結果並更新基於SQL QUERY結果的另一個表

我想更新讓說,它具有以下形式的用戶表:相關

-------------------------------------------------------------- 
UserID ROLE_NAME VALUE 
-------------------------------------------------------------- 
001  VALUE_Q xx 
002  VALUE_W xx 
003  VALUE_Q xx 
-------------------------------------------------------------- 

而且喜歡標識用戶多對多在seprate表這樣

-------------------------------------------------------------- 
LikeId Likes VALUE 
-------------------------------------------------------------- 
001  Code xx 
002  Fun xx 
003  Eat xx 
-------------------------------------------------------------- 

和,另一個表其與用戶表對多對多有以下信息讓說用戶去冒險表


UserToLikingID UserId LikeId 
-------------------------------------------------------------- 
01    001  001 
02    002  001 
03    002  002 
-------------------------------------------------------------- 

而且,這裏來持有用戶ID的另一個表,直接從用戶表

-------------------------------------------------------------- 
TESTTABLEID USER_ID VALUE 
-------------------------------------------------------------- 
001   001  100 
002   002  220 
003   003  400 
004   002  231 
-------------------------------------------------------------- 

,我想的是,首先列出了誰共享相同的喜好重複的用戶,我已經做了在#不是Temptable如下

-------------------------------------------------------------- 
LikeID UserId VALUE 
-------------------------------------------------------------- 
001  001 100 
001  002 200 
002  003 400 
002  004 500 
003  005 211 
003  005 210 
-------------------------------------------------------------- 

現在到了我的問題...

我想更新誰從上面的共享相同的LikeID所有用戶將結果導入到TESTTABLE中,如下所示:My End Result shoudl就像:在上一個結果中爲所有LikeID更新LikeID的UserId。


TESTTABLEID USER_ID VALUE 
-------------------------------------------------------------- 
001   001  100 
002   001  220 
003   002  400 
004   002  500 
-------------------------------------------------------------- 

任何幫助是非常多,我appreacted?如何在循環中運行以更新值?

Hint

Update TestTable set UserId = #Temptable.LikeId 
FROM #Temptable 
where #Temptable.UserId = TestTable.UserId 

如果我必須更新和刪除重複UserId第一和sum thier值和存儲一個代表LikeId爲他們做些什麼?

而不是全部替換userIdLikeId您總結了價值並取代一個LikeId?

回答

2

請使用聯接按照reuirement這裏sql中的樣子:

Update TestTable set UserId = #Temptable.LikeId 
    from TestTable as test 
    inner join #Temptable on #Temptable.UserId = test.UserId 
相關問題