prøv ikke at tildele værdien til din kolonne inde i CASE WHEN-sætningerne, da du allerede gør det.
CASE WHEN vil evaluere til den værdi, der opfylder betingelsen.
prøv denne kode
UPDATE payments SET
total = :total,
paid = (CASE WHEN paid > :new THEN :new ELSE paid END),
due = (CASE WHEN paid < :new THEN (:new - paid) ELSE due END)
WHERE id = :id
Jeg fjernede tildelingerne til betalte og forfaldne kolonner inde i sagsopgørelsen.