2012-06-20 55 views
0

我有這個表命名SubscriptionCharity,其爲以下幾點:用內連接更新查詢....?

SubscriptionId  ChannelURI  CharUserID 
1      AX    12 
2      ZA    7 
3      AX    10 

我要來檢查specfic CharUserId如果在同一個通道URI表中的任何記錄,並將其設置爲null,所以在此表「Subcriptionid = 1」應設置爲null

我有這兩個查詢,一個在MS SQL梟雄m的作用,但不與LINQ工作: (它不影響行)

UPDATE SubscriptionCharProg 
Set ChannelURI = null 
FROM SubscriptionCharProg as t1 
INNER JOIN SubscriptionCharProg as t2 
    on t1.ChannelURI = t2.ChannelURI 
    and t1.DeviceId = t2.DeviceId 
WHERE CharUserId! = 5 

,另一種是對LINQ但不能與MS SQL梟雄工作的一個: (MS SQL梟雄錯誤:無效的對象名稱「T1」)

context.ExecuteStoreCommand("UPDATE t1 Set t1.ChannelURI = 1 FROM SubscriptionCharProg as t1 INNER JOIN 
    SubscriptionCharProg as t2 on t1.ChannelURI = t2.ChannelURI WHERE t1.CharUserId! = " 
    + charuserID + "", null); 

而且,主要的問題是,這兩個查詢空值每channelURi無論是其等於或不是

有什麼想法嗎?

編輯:萬一要是與特定charuserID的記錄被存在兩次或更多次它保持,不將其設置爲null

回答

0

更改的第一行從:

UPDATE SubscriptionCharProg 

UPDATE t1 
+0

done,linq給出了錯誤:charuserid含糊不清,MS管理給出錯誤:無法更新charuserid –

+0

我們可以看到LINQ嗎? – bluevector

+0

它上面貼' –

0

試試這個:

UPDATE t1 
SET ChannelURI = null 
FROM SubscriptionCharProg as t1 
INNER JOIN SubscriptionCharProg as t2 
    on t1.ChannelURI = t2.ChannelURI 
    and t1.DeviceId = t2.DeviceId 
    and t1.CharUserID <> t2.CharUserID 
WHERE t2.CharUserID = 5 
+0

我要檢查在同一個表的具體CharUserID所有行的INTIAL問題,如果有另一個CharUSerID具有相同ChannelURI然後將其設置爲null,比較遺憾的設備ID列 –

+0

啊好的,我明白了,我剛剛更新了查詢以反映這一點。給那一槍。 – Manachi

+0

在SQL同治給出了錯誤:無效的對象名稱T1 –

0
update quiz_subgroup as sg 

inner join (select qq_qsg_id, count(qq_id) as cnt_ques from quiz_questions group by qq_qsg_id) as ques on(ques.qq_qsg_id = sg.qsg_id) 

set sg.qsg_count_of_questions = ques.cnt_ques;