0

2 つのテーブルがあるとします。

T_Customer (p_customer_id, name, prename, country, age)

T_SomeInfo (f_customer_id, somebit, otherbit)

今、影響を受けた行に属する1 つの randomsomebitOUTPUTupdatedを更新したいと思います。T_Customerf_customer_id

Atm私は次の声明を出しました:

UPDATE randombit SET randombit.somebit= 1
OUTPUT inserted.f_customer_id
FROM 
(
SELECT TOP 1 * FROM T_SomeInfo  
WHERE somebit= 0 AND otherbit = 0
ORDER BY NEWID()
) AS randombit

だから私f_customer_idは私の更新された行の。しかし、別のテーブルから値を出力する有効なステートメントを作成できません。これは、私が試みたが成功しなかったステートメントです。

UPDATE randombit SET randombit.somebit= 1
OUTPUT customer.*
FROM T_Customer AS customer
WHERE customer.f_customer_id = inserted.f_customer_id
FROM 
(
SELECT TOP 1 * FROM T_SomeInfo  
WHERE somebit= 0 AND otherbit = 0
ORDER BY NEWID()
) AS randombit

1 つのステートメントに(INNER JOINまたはを使用して) 更新および出力するソリューションはありますか?SELECT

例として編集: 2 人の顧客がいます:

T_Customer (1, "Smith", "John", "country", 10)
T_Customer (2, "John", "William", "country2", 20)

実はアップデート

UPDATE randombit SET randombit.somebit= 1
OUTPUT inserted.f_customer_id
FROM 
(
SELECT TOP 1 * FROM T_SomeInfo  
WHERE somebit= 0 AND otherbit = 0
ORDER BY NEWID()
) AS randombit

出力します(彼がランダムな勝者の場合):

1

でも見たい

1、「スミス」、「ジョン」、「国」、10

4

0 に答える 0