2016-11-03 130 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