2010-10-11 83 views
1

我有栏目COMPONENT_AMOUNT(money),MONTH_FOR(int),YEAR_FOR(int)COMPONENT_TYPE(int)。我想根据情况找到金额的总和。我写过这样的查询,但它解决了我的目的。如何为此选择查询?

我的目的是,如果一个选择NOV-2010则它将总结金额高达这个选择的月份,包括我的查询下面给出的2009年

这一个月里,请修改:

SELECT SUM(Convert(Numeric(7,2), Round([COMPONENT_AMOUNT],2,1))) 
FROM [TEAM_FUNDS_DETAILS] 
WHERE YEAR_FOR <= 1 AND MONTH_FOR <= 1 AND [COMPONENT_TYPE] = 1 
+0

你怎么存放多年YEAR_FOR列。例如,2009和2010年的价值是什么? – 2010-10-11 12:33:02

+0

你使用了哪个数据库? – Oded 2010-10-11 12:33:59

+0

@Oded:sql server-2005 – Shalni 2010-10-11 12:35:35

回答

4

如果您需要每次查询结果只有一个,我认为这是代码

declare @year int 
declare @month int 

set @year = 2010 --desire year 
set @month = 8 --desire month 

select sum(COMPONENT_AMOUNT) 
from [TEAM_FUNDS_DETAILS] 
WHERE 
    [COMPONENT_TYPE] = 1 
    and (
      YEAR_FOR < @year 
     or ([email protected] and month_for<[email protected]) 
     )