У меня есть TSQL запрос, который делает что-то вроде этого:TSQL Group Включив все столбцы
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
То, что я хотел бы сделать, это получить все продукты в результаты, даже те, которые не имеют продаж. Я попытался сделать LEFT JOIN в таблице продуктов, но это просто сбивает с толку.
Поэтому я хотел бы, чтобы мой результат был чем-то вроде этого.
TotalSales Product
-----------------------
123.45 Apples
234.56 Oranges
345.67 Grapes
0.0 Lemons
0.0 Grapefruit
Любая идея, как это сделать?
Использование RIGHT JOIN повернет вверх NULL 'PRODUCT.PRODUCTNAME' записи на выходе. Правильный подход заключается в LEFT JOIN на необязательную таблицу ('SALES' в этом случае). –
Кстати, постарайтесь не смешивать 'LEFT JOIN' с' RIGHT JOIN' позже, когда этот запрос возник. Он НАПРАВЛЯЕТ ВАШИ ОРЕХА !!! (см. я использую все колпачки, просто думая об этом) – Sung