我不愿意输入我想出的以下代码:
UPDATE a_fees
SET active = 'N'
WHERE EXISTS
(
SELECT fee_id, (
audit_fees + audit_related_fees + tax_fees + other_fees
) AS total_fees
FROM a_fees
WHERE verified = 'N'
GROUP BY fee_id
HAVING total_fees < 5000);
因为我运行这个类似的代码(如下)并且我得到了返回的表中的所有结果,这让我认为上面的这段代码将更新表中的所有记录。当我进行子选择时,它只返回我关心的部分。但是,当我添加最外层的选择语句时,它会返回整个表。
SELECT fee_id
FROM a_fees
WHERE EXISTS (
SELECT fee_id, (
audit_fees + audit_related_fees + tax_fees + other_fees
) AS total_fees
FROM a_fees
WHERE verified = 'N'
GROUP BY fee_id
HAVING total_fees <5000;
任何关于如何为表中四列之和小于 5,000 美元的记录设置 active='N' 的建议都会很棒。提前致谢。