2012-06-27 60 views
2

我想得到最近3個月的結果。這是我迄今爲止創建的:如何選擇最近3個月?

SELECT 
    year([date]) as tahun, 
    month([date]) as bulan, 
    [type] as tipe, 
    SUM([net qty]) total_karton, 
    CAST(SUM([cm1 (rp)]) as decimal) as total_uang 
FROM 
    tbl_weeklyflash_ID 
GROUP BY 
    year([date]), 
    month([date]), 
    [type] 
ORDER BY 
    month([date]), [type] 

但該查詢顯示所有月份,如何只獲取最近3個月?

+0

你的意思總是十月,十一月和十二月?或者僅僅是「最近3個月」? –

+0

只是最近3個月:) – blankon91

回答

3

只需添加一個WHERE條款,是這樣的:如果你想3 整個個月數據

WHERE 
    DATEDIFF(month,[date],CURRENT_TIMESTAMP) between 0 and 2 --May have to adjust the end value on this 

2會給你的當月和之前的2,您可能需要調整結束值。

DATEDIFF總是給出轉換的數量已經發生的日期部分指定。因此,在上面的例子中,它計算了(不是很好的列名,BTW)和當前日期之間更改的月份數。

+0

@Darmien_The_Unbeliever謝謝你,它的工作原理。現在我懂了。謝謝你的回答和解釋。 – blankon91

1

試試這個:

WHERE month([date]) between month(getdate()) -3 and month(getdate()) 
+0

謝謝你的回答,它的工作原理,但我需要調整'3'到'2',這樣我才能得到我想要的。謝謝 :) – blankon91