如何在netezza过去5个月滚动

时间:2016-11-03 23:37:46

标签: sql postgresql netezza

我只是想在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

1 个答案:

答案 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)