Kijk of dit helpt:
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
Als dit niet het geval is, zou het leuk zijn om het type van de kolom "datum" in de tabel te controleren. Soms is het varchar in plaats van datum. Dit is voor het geval u niet degene bent die de tabel heeft gemaakt.