我試圖創建一個更新查詢工作過的查詢更新查詢不保存正確的值
的有ChargeTransaction和ChargeError之間的1->中號的關係 ChargeBody是包含JSON文本字段。
當我運行內部查詢時,我得到了chargetransactionid和帳戶標識(1,2和3)的明確列表,但是當我將它放入UPDATE語句中時,它會爲所有chargetransactions指定一個3的accountid。
UPDATE ChargeTransaction
SET AccountId= a.AccountID
FROM
(
SELECT ChargeTransactionId, AccountID
FROM
(
SELECT
[ChargeTransactionId],
CASE WHEN ChargeBody LIKE '%"ReceivingFacility":"998001"%' THEN 1
WHEN ChargeBody LIKE '%"ReceivingFacility":"998002"%' THEN 2
WHEN ChargeBody LIKE '%"ReceivingFacility":"998003"%' THEN 3
ELSE 1
END AS AccountId,
ChargeBody
FROM [ChargesDashboard].[dbo].[ChargeError]
) b
GROUP BY ChargeTransactionId, AccountId
) a
WHERE ChargeTransactionId=a.ChargeTransactionId ;