我想从我们的netteza数据库中提取最近24个月的数据,但不包括最近2个季度(当前季度和最后一个季度)。数据库中日期字段的格式如下:YYYY-Q-MM
2015411 = Year=2016 Quarter=4 month= 11
2013108 = Year=2013 Quarter=1 month= 8
预计的时间范围应该是2014年10月到2016年9月的数据。我们使用日历年1月到3月是Q1,4月到6月是Q2等。这是我正在使用的查询,但是它为最后27个提取了一切几个月,但我只想要过去的24个月,但不包括最近的两个季度。
select * from myTable where substring (month_key,1,4) || substring (month_key, 6,7) || ''01'' > CURRENT_DATE - INTERVAL ''27 months''
答案 0 :(得分:2)
您可以使用内置季度评估。
下面的查询突出显示所需的值
select add_months(to_date(to_char(to_date(to_char(current_date,'YYYYQ'),'YYYYQ')-1,'YYYYQ'),'YYYYQ'),-24) as "24 months prior to 2 quarters ago"
,to_date(to_char(to_date(to_char(current_date,'YYYYQ'),'YYYYQ')-1,'YYYYQ'),'YYYYQ') "2 quarters ago"
这是你的例子:
select * from myTable
where date_value between select add_months(to_date(to_char(to_date(to_char(current_date,'YYYYQ'),'YYYYQ')-1,'YYYYQ'),'YYYYQ'),-24)
and to_date(to_char(to_date(to_char(current_date,'YYYYQ'),'YYYYQ')-1,'YYYYQ'),'YYYYQ')