2011-09-06 13 views
8

すべての負の数量を0にするT-SQLクエリがあります。グループバイT-SQLステートメントですべての負の数をゼロにする方法

SELECT 
p.productnumber, 
v.[Description], 
SUM(i.Quantity) as quantity 
FROM ... 
LEFT JOIN ... 
LEFT JOIN ... 
LEFT JOIN ... 
GROUP BY productnumber, [Description] 

基本的和が5,5、-1で構成されている場合、結果は5 + 5 + 0 = 10であり、そしてべきではない(5 + 5 +( - 1)9 =

私は?

答えて

16

あなたは

SUM(CASE WHEN i.Quantity < 0 THEN 0 ELSE i.Quantity END) 

以上のあいまいなバージョン

ステートメントを使用することができることをどのように行うだろう

または他の目的で必要ない場合は、WHERE節でこれらの行を完全に除外してください。

+0

や 'i.Quantity> 0 ' – cetver

+0

@cetver - あなたの控え! –

5

ちょうどあなたがしたくないものを除外しSUM(CASE WHEN i.Quantity < 0 THEN 0 ELSE i.Quantity END) as quantity ...

WHERE quantity > 0 
関連する問題