Question

I am trying to substract dates from today (Get a 1 month ago till forever report). So far I've tried

DATE_SUB(NOW(), INTERVAL 1 MONTH) 

Here is the context:

SELECT contracts.currency , ROUND(SUM( 
    CASE
        WHEN contracts.currency = 'USD' THEN contracts.value*550
        WHEN contracts.currency = '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(NOW(), INTERVAL 1 MONTH)
GROUP BY currency 
ORDER BY currency ASC
Was it helpful?

Solution

See if this helps :

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

If not, it would be nice to check the type of the column "date" in table. Sometimes it is varchar instead of date. This is in case you are not the one who has created the table.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top