Xem điều này có hữu ích không:
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
Nếu không, sẽ rất hay nếu bạn kiểm tra loại cột "ngày tháng" trong bảng. Đôi khi nó là varchar thay vì ngày tháng. Đây là trường hợp bạn không phải là người đã tạo bảng.