以下で思いついたこのコードを入力するのは気が進まない:
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;
4つの列の合計が$5,000未満であるテーブルのレコードに対して、active='N'を設定する方法についてのアドバイスは素晴らしいでしょう。前もって感謝します。