簡體   English   中英

SQL Query從每個月的最后一周獲取記錄4年

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM