复杂选择查询上的SQL Update语句



我有一个复杂的选择查询,并有许多连接。它是由工具生成的。我必须根据该查询更新字段。

我试图解码它,但不确定基于解码的更新是否正确。我可以根据工具生成的查询更新值吗?如下: -

UPDATE F_Sales SET d_source = "XYZ" WHERE
F_Sales.customer_code in (SELECT A, B, C, D......... FROM K, L, M, N, O,P ....)
create table #temp(customer_code INT)
insert into #temp SELECT A, B, C, D......... FROM K, L, M, N, O,P ....
UPDATE F_Sales SET d_source = "XYZ" 
FROM F_Sales  join #temp ON
F_Sales.customer_code = #temp.customer_code

提供了A,B, ..列之一(例如,D列)可以映射到F_Sales.customer_code

UPDATE F_Sales SET d_source = "XYZ" 
WHERE
F_Sales.customer_code in (
  SELECT D 
  FROM ( -- untouched original query
     SELECT A, B, C, D......... FROM K, L, M, N, O,P ....) q
)

UPDATE F_Sales SET d_source = "XYZ" 
FROM F_Sales 
JOIN ( -- untouched original query
     SELECT A, B, C, D......... FROM K, L, M, N, O,P ....) q
ON F_Sales.customer_code = q.D

如果您可以显示生成的查询

,我们可能会做得更好

最新更新