2012-11-15 74 views
0

我有显示像这样的数据的以下查询:不同的日期周期

Income Type This Month Last Month This Year Last Year 
1   179640.00 179640.00 179640.00 179640.00 
2   12424440.00 12424440.00 12424440.00 12424440.00 


Select 
    Income_Type As [Income Type], 
    Sum(Income_Amount) As [This Month], 
    Sum(Income_Amount) As [Last Month], 
    Sum(Income_Amount) As [This Year], 
    Sum(Income_Amount) As [Last Year] 
From Income I 
Left Join Finance_Types FT On I.Income_Type = FT.Type_ID 
Group By 
Income_Type 

的收入表具有Income_Date其是日期时间列。

如果可能,我正在努力想知道如何在一个查询中为“本月”,“上个月”,“今年”,“去年”提供正确的总和数据?

+0

你可能想要'GROUP BY'你的日期字段,但很难不看到你当前的表结构。请张贴您的表格结构,然后发布一些示例数据。 – Taryn

+0

谢谢bluefeet。我也看了你如何编辑我的文章以供将来参考,因为它显示得更好!谢谢 – Nexiv

回答

2

使用日期函数:

SUM(CASE WHEN YEAR(yourdatefield) = YEAR(GetDate()) - 1 THEN Income_Amount ELSE 0 END) AS 'Last Year' 

这case语句只返回Income_Amount如果这是最后一年,所以你会总结只有那些数额。

如果您不使用SQL Server,则语法可能会有所不同。

+0

非常感谢吉姆。完美的作品。在几分钟内让我接受答案。再次感谢。 – Nexiv