我只是想在netezza中度过12个月的时间,到目前为止,我似乎无法找到任何好的解决方案。
Contract SpendDate Expenses
sfd6s 2016205 8765
axy12 2016206 1320
axy12 2016307 12980
axy12 2016308 1260
axy12 2016309 1200
rhg65 2016410 7800
fdhju 2016411 300
这是我的查询的样子:
select contract, spendDate, expenses
from myTable
这是诀窍,spendDate格式是这样的:
Year + Quarter + Month
所以年后的中间数字是1,2,3或4的季度。所以在我的查询中,我想说从今天开始滚动12个月。请帮忙。
这是我想要的结果:
Contract SpendDate Expenses
axy12 2016206 1320
axy12 2016307 12980
axy12 2016308 1260
axy12 2016309 1200
rhg65 2016410 7800
答案 0 :(得分:0)
您可以使用to_date将您的spendDate转换为正常日期,然后使用普通日期数学。
select contract, spendDate, expenses
from mytable
where to_date(spendDate,'YYYYQMM')
between add_months(date_trunc('month',current_date),-5)
and add_months(date_trunc('month',current_date),-1)
order by spendDate
;
CONTRACT | SPENDDATE | EXPENSES
----------+-----------+----------
axy12 | 2016206 | 1320
axy12 | 2016307 | 12980
axy12 | 2016308 | 1260
axy12 | 2016309 | 1200
rhg65 | 2016410 | 7800
(5 rows)