Sehen Sie, ob dies hilft:
SELECT contracts.currency , ROUND(SUM(
CASE contracts.currency
WHEN 'USD' THEN contracts.value*550
WHEN 'UF' THEN contracts.value*22000
ELSE contracts.value
END),2)
AS real_value
FROM contracts
WHERE currency IN ('USD','UF','CLP') AND
date >=DATE_SUB(curdate(), INTERVAL 1 MONTH) AND
date <=curdate()
GROUP BY currency
ORDER BY currency ASC
Wenn nicht, wäre es schön, den Typ der Spalte "Datum" in der Tabelle zu überprüfen. Manchmal ist es varchar anstelle von date. Dies ist für den Fall, dass Sie nicht derjenige sind, der die Tabelle erstellt hat.