모든 열을 포함하여 TSQL 그룹
-
21-09-2019 - |
문제
다음과 같은 작업을 수행하는 TSQL 쿼리가 있습니다.
SELECT SUM(s.Amount) as TotalSales, p.ProductName
FROM SALES s
INNER JOIN Product p ON s.ProductID = p.ID
GROUP BY p.ProductName
결과 출력은입니다
TotalSales Product
-----------------------
123.45 Apples
234.56 Oranges
345.67 Grapes
내가하고 싶은 것은 결과의 모든 제품, 심지어 판매가없는 제품을 얻는 것입니다. 나는 제품 테이블에서 왼쪽 결합을 시도했지만 단지 일을 혼란스럽게합니다.
그래서 나는 내 출력이 이와 같은 것이되기를 바랍니다.
TotalSales Product
-----------------------
123.45 Apples
234.56 Oranges
345.67 Grapes
0.0 Lemons
0.0 Grapefruit
이 작업을 수행하는 방법이 있습니까?
해결책
SELECT SUM(ISNULL(s.Amount,0)) as TotalSales, p.ProductName
FROM SALES s
RIGHT JOIN Product p ON s.ProductID = p.ID
GROUP BY p.ProductName
다른 팁
왼쪽 조인 (더 읽기 성) :
SELECT SUM(ISNULL(s.Amount,0)) as TotalSales, p.ProductName
FROM Product p
LEFT JOIN SALES s ON p.ProductID = s.ID
GROUP BY p.ProductName
SELECT COALESCE(SUM(s.Amount), 0) as TotalSales, p.ProductName
FROM Product p
LEFT JOIN SALES s ON s.ProductID = p.ID
GROUP BY p.ProductName
제휴하지 않습니다 StackOverflow