2010-10-11 86 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]) 
     )