2017-02-15 16 views
-1

BAUSERの値を使用して、USER_FNMをテンポラリテーブル@Usersに更新したいとします。別の列に基づいて1つの列の値を更新する

@Users

DECLARE @USERS TABLE 
(
    USER_KEY INT, 
    USER_FNM VARCHAR(50), 
    USER_LNM VARCHAR(50), 
    USDE_HSU DECIMAL(8,2), 
    [110000003] DECIMAL(8,2), 
[120000002] DECIMAL(8,2), 
[120000003] DECIMAL(8,2) 
) 

私はすでに試したことはこれです:

update @USERS 
set USER_FNM = (select top(1) user_fnm from bauser where bauser.user_key = USER_KEY) 

しかし、これは常にBAUSERテーブルから最初の値を返します。 @Usersの各行を繰り返し処理する方法とUSER_FNMを変更するにはどうすればよいですか?

+0

[MSDNの記事](https://msdn.microsoft.com/en-us/library/ms177523上の複数の例があります。 .aspx)に 'UPDATE'ステートメントを追加します。 –

+0

なぜdownvotingですか? – FrenkyB

+0

'SQLの別のテーブルからの更新'を簡単にGoogleで検索すると、さまざまなソースが使用される可能性があります。 –

答えて

1

SQL Serverは、更新ステートメントの結合をサポートしています。
user_keyと仮定すると、テーブルbauser内で一意である、あなたは、単にこれを行うことができます。

UPDATE t 
SET USER_FNM = bauser.user_fnm 
FROM @Users t 
INNER JOIN bauser ON bauser.user_key = t.USER_KEY 
関連する問題