2011-10-09 25 views
1

當試圖將兩列總和相加時,我遇到了一個問題。 香港專業教育學院創建的視圖與所有正確的數據,但是當我嘗試執行類似的查詢:將SQL Server2005中的兩列總和加在一起

Select ID, Sum(ColumnA), 
    Sum(ColumnB) 
    Sum(ColumnA) + Sum(ColumnB) AS ColumnC 
    From View1 
    Group by ID 

的ColumnC數字僅僅是正確的,當有兩列數據,如果只有數據ColumnB然後它顯示,但如果只有ColumnA中的數據,那麼它沒有。

有時當ColumnA或B中沒有任何數據時它將爲NULL,所以可能是這個問題。 希望有一種解決方法。

乾杯

+0

對不起,延遲迴復。但是,感謝他們很棒的回答,並且所有的工作都很有效,我選擇了在結束時選擇IS NULL子句。再次感謝 – PDB

回答

3

嘗試使用ISNULL替代零空值:

Select ID, Sum(ColumnA), 
Sum(ColumnB) 
ISNULL(Sum(ColumnA),0) + ISNULL(Sum(ColumnB),0) AS ColumnC 
From View1 
Group by ID 
1

可以使用COALESCE與如下零來替換NULL輸入到計算中。

COALESCE(Sum(ColumnA),0) + COALESCE(Sum(ColumnB),0) + AS ColumnC 

ISNULL如在其他2個答案中。如果可移植性不是問題,則可以使用Doesn't matter which

2

添加的東西爲空值,給出了一個空的結果,空不轉換到零。你必須做明確的轉換:

Select ID, Sum(ColumnA), 
Sum(ColumnB) 
isnull(Sum(ColumnA), 0) + isnull(Sum(ColumnB), 0) AS ColumnC 
From View1 
Group by ID