2016-11-03 86 views
0

我只是试图让Netezza公司滚动12个月,我似乎无法找到什么好的解决办法,到目前为止轧过去5个月..如何让Netezza公司

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

明确你的期望...说明样本输入和期望的输出.. – Teja

+0

我更新了我的问题,并添加了预期的结果。我只想得到最后一次滚动5个月。请参阅最新的问题。谢谢 – moe

回答

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) 
+0

@moe这个解决方案是做你想做的吗? – ScottMcG