如何为此编写选择查询?

时间:2010-10-11 12:29:08

标签: sql sql-server sql-server-2005

我有专栏COMPONENT_AMOUNT(money)MONTH_FOR(int)YEAR_FOR(int)COMPONENT_TYPE(int)。我想根据条件找到金额的总和。我写了这样的查询,但它解决了我的目的。

我的目的是,如果一个选择2010年11月,那么它将总计到这个选定月份的金额,包括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  

1 个答案:

答案 0 :(得分: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 (year_for=@year and month_for<=@month)
          )