I'm trying to recreate an existing View in Snowflake (originally in SQL Server). I need to get last month's data which is easy enough, but here's the scenario:
On 3-1-21, it should retrieve 2-1-21 to 3-1-21, but then starting on 3-2-21, it should only show 3-1-21 to-date, as our month end reporting goes out on the 1st of the month, and it should include all of the previous month's data, but then on the 2nd of the month, it should only show 3-1-21 to-date. Any idea how to do this? I can get last month's data plus the first, but I don't know how to make it drop the previous month and show MTD after the 2nd of the month.
WHERE DATE(CHDCR, 'YYYYMMDD') >= ADD_MONTHS(CURRENT_DATE()-1,-1)
WITH dates AS (SELECT * FROM VALUES ('2021-03-01'),
('2021-03-02'),
('2021-03-03'),
('2021-02-01'),
('2021-02-02') v(day))
SELECT day
,DATE_TRUNC('month',DATEADD('day',-1, day)) AS from_date
,DATEADD('month',1, from_date ) AS to_date
FROM dates
ORDER BY 1;
we get the results:
DAY FROM_DATE TO_DATE
2021-02-01 2021-01-01 00:00:00.000 2021-02-01 00:00:00.000
2021-02-02 2021-02-01 00:00:00.000 2021-03-01 00:00:00.000
2021-03-01 2021-02-01 00:00:00.000 2021-03-01 00:00:00.000
2021-03-02 2021-03-01 00:00:00.000 2021-04-01 00:00:00.000
2021-03-03 2021-03-01 00:00:00.000 2021-04-01 00:00:00.000
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.