我需要并在表exp_pedcom上更新另一个表的字段为空(EXP_Procimp)的情况,但这两个表彼此之间没有直接关系,所以我需要"路由&#34 ;它通过另外两个表来联系它们。 "路由!关系有效,它会按预期返回,但更新不会。我尝试使用from和作为子查询的直接内部联接(实际上更容易演示,所以这就是这里的内容。
UPDATE EXP_PEDCOM
SET STATUS_ATENDIMENTO=0
WHERE EXP_PROCIMP.DAT_RECEBIMENTO IS NOT NULL IN (SELECT EXP_PROCIMP.DAT_RECEBIMENTO
FROM
EXP_PEDCOM INNER JOIN
EXP_INVOICE_IT ON EXP_PEDCOM.NUM_PEDCOM = EXP_INVOICE_IT.NUM_PEDCOM INNER JOIN
EXP_INVOICE ON EXP_INVOICE_IT.COD_DOCUMENTO = EXP_INVOICE.COD_DOCUMENTO INNER JOIN
EXP_PROCIMP ON EXP_INVOICE.NUM_PROCIMP = EXP_PROCIMP.NUM_PROCIMP)
任何提示?
答案 0 :(得分:0)
以下显示了如何使用UPDATE... FROM...
语法来使用它。 (在弄清楚查询实际执行的操作时,我弄乱了格式化和别名。)
UPDATE EXP_PEDCOM
set STATUS_ATENDIMENTO = 0
from EXP_PEDCOM
inner join EXP_INVOICE_IT it
on EXP_PEDCOM.NUM_PEDCOM = it.NUM_PEDCOM
inner join EXP_INVOICE iv
on it.COD_DOCUMENTO = iv.COD_DOCUMENTO
inner join EXP_PROCIMP pr
on iv.NUM_PROCIMP = pr.NUM_PROCIMP
where pr.DAT_RECEBIMENTO is not null
这将有效[警告:我无法运行,因此调试可能的语法故障],但很难解释为什么/如何工作。它也有点不同寻常;希望你能得到其他帖子,以显示"正确的"运行此类查询的方法。