0
如果编写了下面的查询,我得到错误B.WO_NO无效。如果查询没有使用WHERE子句写入,则work_order_coding_tab中的所有金额值都会被更新。但我不需要更新表中的所有数据。但相反,我需要只更新行选择,内部选择。对于我可以尝试的任何建议。请帮助更新给定查询的错误
UPDATE work_order_coding_tab A
A.amount = (SELECT B.sales_price_amount
FROM work_order_coding B
WHERE A.WO_NO = B.WO_NO AND
A.ROW_NO=B.ROW_NO
AND B.work_order_cost_type_db = 'M'
AND B.order_no IS NULL
AND B.catalog_no IS NOT NULL
AND A.amount is not null and A.amount <> B.sales_price_amount and B.contract like 'TZ%'
and abc.active_separate_api.get_line_no(B.wo_no) =2)
WHERE A.WO_NO = B.WO_NO AND
A.ROW_NO=B.ROW_NO
嗨谢谢,回复。是的,我需要更新work_order_coding_tab中的某些记录。 work_order_coding视图具有WO_NO和ROW_NO。我需要取这些值并只更新work_order_coding_tab中等于WO_NO和ROW_NO的记录。这些WO_NO和ROW_NO只能从如上所述的选择中获得。 (内部查询)。任何建议我怎么能做到这一点? – user3789200
@ user3789200 - 对于'work_order_coding_tab a'中具有'A.WO_NO和A.ROW_NO'且非空的每一行,更新将会成功,因为'B.sales_price_amount'取自'work_order_coding B中的那些记录',它们与'work_order_coding_tab a'的确切'A.WO_NO和A.ROW_NO'具有对应关系。你很安全。 – g00dy
好的。选择查询仅选择了12行。但是在更新中,据说540更新了这是work_order_coding_tab中的行数。这意味着,虽然此消息出现,但只有12条记录将在work_order_coding_tab中更新?但是当没有可用的条件时,它如何选择确切的行。对不起,无知 – user3789200