2011-09-06 2 views
8

모든 음수를 0으로 만들려면 T-SQL 쿼리를 사용해야합니다. . 1) = 9T-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 = 10 + 0, 그리고 (5 + 5 + (되어야

어떻게 그런 짓을 했을까?

답변

16

당신은 CASE

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

아니면 더 애매한 버전을 사용할 수

SUM(NULLIF(i.Quantity, -ABS(i.Quantity))) 

또는 다른 용도로 필요하지 않은 경우 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