2017-08-10 113 views
-1

我正在編寫存儲過程以更新基於列或其他表格。 這是我有:在case語句後編寫JOIN語句

Set Foutcome Case when Tp is > 0 and Rr = 0 
     Then 'settled' 
     Else 
     update a set a.Fouctome = b.outcome 
     From table_a innerjoin table_b 
     On a.datasource= b.datasource 
where datasource like '%Bong%' 

但它不起作用。請幫忙。

+0

似乎你的sql語句無效。首先設置你分配一個值作爲「定居」,那麼其他人進入你的取景另一個更新語句是無效的。 – Oasis

+0

添加一些示例表數據和預期的結果 - 所有的格式化文本。 – jarlh

回答

0

嘗試下面的SQL。

update a 
set Foutcome= 
case when Tp is > 0 and Rr = 0 then 'settled' 
else (select top 1 b.outcome from b 
     inner join a on a.datasource= b.datasource 
     where b.datasource like '%Bong%') 
end 
+0

它只會從else部分中選擇一個值。但是在OP中他試圖更新數據源如'Bongo'的所有記錄 – Oasis

+0

@Oasis ok,也許我誤解了他,如果是這樣,我會稍後更新答案。 – Nico