[英]SQL Query to get records from last week of every month for 4 years
我在桌子下面
ABC Date
200 2019-02-22
-200 2019-02-23
1200 2019-02-24
-500 2019-02-25
'
'
'
'
-889 2015-01-11
我需要從每個月上周的每一天獲得ABC的價值
select ABC
from table 1
where date between '2019-03-26' and '2019-03-30'
這是在2019年3月份的月份。我如何創建一個循環,使其顯示每個月的上周每天的價值3年
SELECT ABC, DATE FROM table_1 WHERE DATEPART(wk, DATE) =
DATEPART(wk, EOMONTH(DATE)) AND DATE <= DATEADD(year,3,GETDATE())
DATEPART(周,日)給我那個日期的周數,DATEPART(周,日期(日期))給我一周的數字(相應日期的最后一天)。 所以,當我檢查這個時,我只會選擇屬於每個月最后一周的日期。 下一個過濾器只選擇那些從現在開始不到3年的日期(GETDATE())。
您可以使用日期算法來獲取每個月的最后一周。 在Terdata,我認為這是一個解決方案:
select abc
from table1
where (date >= (current_date - extract(day from date) * interval '1 day') - interval '6 day' and
date <= current_date - extract(day from date) * interval '1 day'
) or
(date >= (current_date - extract(day from date) * interval '1 day') - interval '1 month' - interval '6 day' and
date <= current_date - extract(day from date) * interval '1 day' - interval '1 month'
) or
(date >= (current_date - extract(day from date) * interval '1 day') - interval '2 month' - interval '6 day' and
date <= current_date - extract(day from date) * interval '1 day' - interval '12month'
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.