2017-08-10 12 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ステートメントが無効であるようです。最初に1つの値を '決済'とし、それ以外の場合は無効な別の更新ステートメントを作成します。 – 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部分から1つの値だけを選択します。しかし、OPでは、彼は 'Bongo'のようなデータソースをすべて更新しようとしています – Oasis

+0

@Oasis ok、おそらく私は彼を誤解しています。 – Nico