2012-06-27 63 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