2016-06-07 4 views
-8

나는 시나리오 아래가SQL에서 if를 사용하는 방법?

원시 데이터 :

Item Price 
1  1 
1 -1 
1  2 
2  4 
2 -3 
2 -1 
3  2 
3 -1 

필수 출력 :

Item Price 
1 2 
3 1 

내가 각 항목에 대한 모든 가격의 합계를 원하지만 내가 그 항목을 제외 할 합계로 의 가격은 0입니다.

SELECT 
    [Item], 
    SUM([Price]) 
FROM 
    [dbo].[YourTable] 
WHERE 
    [Price] <> 0 
GROUP BY 
    [Item] 
HAVING 
    SUM([Price]) > 0 

원시 데이터 또는 집계 값에 조건에 대한 HAVING 절에 대해 WHERE 절을 사용

+1

은 사진을 게시하지 마십시오. 그림 링크가 끊어 지거나 나중에 유용하지 않을 수 있습니다. 관련 코드를 게시하고 시나리오 본문에 시나리오를 자세히 설명하십시오. – Lexi

답변

3

는이 같은 집계 쿼리, 뭔가를해야합니다. 이 그냥있는 것은위한 것입니다 무엇 인 기록을 필터링한다

SELECT t.item,sum(t.price) as total_price 
FROM YourTable t 
GROUP BY t.item 
HAVING sum(t.price) <> 0 
1

당신은 HAVING() 절을 사용할 수 있습니다. IF는 몇 가지 조건에 따라 두 값 중 하나를 선택하는 데 사용됩니다.이 값은 여기에 필요한 값이 아닙니다. 적절한 데이터로 테스트

SELECT Item, SUM(Price) p 
FROM table 
GROUP BY Item 
HAVING p != 0 
+0

나는 그것이'HAVING sum (t.price) <> 0'이어야한다고 생각한다 ... –

+0

그것에 대해 생각하지 않았다, 정정 된 :) @ZoharPeled – sagi

1

완벽하게 작동 쿼리 :

SELECT item, sum(price) as total 
FROM product 
GROUP BY item 
HAVING sum(price) <> 0 
관련 문제