2014-07-24 26 views
1

我有以下格式的表:SQL SERVER忽略分子按照分母

Column1 Column2 Column3 Column4 
abc   345 56  67 
abc   43 56  87 
abc   54  34  12 
abc   null 12  56 

select Column1,sum(Column2+Column3)/sum(Column4 +Columnn3) as pct 
group by column1 

這使我三百八十○分之六百= 1.57但 我想忽略列4 +欄3的總和當第2列是空,因此輸出應該是312分之588= 1.88

有人可以讓我知道我怎麼能夠無視分母,如果在分子中值的一個是空

感謝

+0

你從哪裏得到'213'? – SQLChao

+0

不好意思做了改變 – user3290807

回答

1

在SQL Server中,你可以使用isnull使用替代值null

select col1 
,  sum(isnull(col2, 0) + col3)/sum(col4 + col3) 
from YourTable 
group by 
     col1 

編輯在回答您的意見,看看JChao的答案。

+0

但是這仍然包括計算中最後一行的數字,我想在計算中忽略分子和分母如果第2列爲空 – user3290807

+1

Math:SUM(a)/ SUM(b) '***不是和SUM(a/b)'相同。 – RBarryYoung

+0

@RBarryYoung:好點:) – Andomar

1

爲什麼不過濾掉空行?

select Column1,sum(Column2+Column3)/sum(Column4 +Column3) as pct 
    from table1 
    where column2 is not null 
    group by column1