У меня есть три таблицы CustomerSales & Icecream. В целях понимания есть одно мороженое в каждой продаже.
CustomerSales Таблица содержит (CustomerId, PurchaseId, почтовый индекс, IcecreamID)
Ice_Cream содержит (Ice_Cream Name, Ice_Cream Id)
Я пытаюсь написать запрос, который возвращает количество продаж шоколадного мороженого на каждый почтовый индекс (почтовый индекс), но я также хочу знать, какие почтовые индексы имели нулевые продажи. В настоящее время он возвращает только те почтовые индексы, у которых были продажи.
SELECT C.postcode, COUNT(*) AS TOTAL SALES
FROM CustomerSales C JOIN IceCream I
ON C.icecreamID = I.id AND
WHERE I.name = "Chocolate" AND C.saleyear = "2019"
GROUP BY C.postcode;
Это близко к тому, что я хочу, но включает только почтовые индексы, которые сделали продажи. Я также хочу включить почтовые индексы, которые сделали 0 продаж шоколадного мороженого в 2019 году.
Как бы я это сделал? Я пробовал с накопительным пакетом, но думаю, что я делаю это неправильно.
Я также думал,
SELECT C.postcode, COUNT(*) AS TOTAL SALES
FROM CustomerSales C OUTER LEFT JOIN IceCream I
ON C.icecreamID = I.id AND
WHERE I.name = "Chocolate" AND C.saleyear = "2019"
GROUP BY C.postcode;
Я думаю, что проблема в том, что count возвращает значения строк.