У меня есть простая таблица:
Table: pn
id, vender, article, sells, date
01, Peter, bread, 10, 02-01-2019
02, Tom, bread, 3, 10-01-2019
03, Paul, water, 3, 05-01-2019
04, Peter, oil, 5, 16-01-2019
05, Paul, bread, 1, 22-01-2019
06, Tom, oil, 2, 30-01-2019
07, Peter, bread, 1, 27-01-2019
08, Tom, oil, 1, 17-01-2019
Мне нужен запрос, который будет возвращать продажи каждого продавца, для определенных товаров, за определенный период времени.Пример: хлеб и масло в период с 01-01-2019 по 31-01-2019.Результат запроса должен выглядеть следующим образом:
Vendor, Article, Sells
Paul, bread, 1
Paul, oil, 0
Peter, bread, 11
Peter, oil, 5
Tom, bread, 3
Tom, oil, 3
Моя проблема в том, что некоторые поставщики не продают определенные статьи, строки для этого поставщика / статьи не печатаются, например:
Vendor, Article, Sells
Paul, bread, 1
Peter, bread, 11
Peter, oil, 5
Tom, bread, 3
Tom, oil, 3
Обратите внимание на пропущенное "Paul, oil, 0"
Мой текущий код выглядит следующим образом:
SELECT pn.vendor, pn.article, SUM (pn.sells)
FROM pn
WHERE pn.date BETWEEN 01.01.2019 AND 31.01.2019
AND (pn.article = 'bread' OR pn.article = 'oil')
GROUP BY pn.vendor, pn.article
ORDER BY pn.vendor ASC, pn.article ASC
Я перепробовал множество разных aproches с ISNULL и COALESC, но безуспешно.Любая помощь приветствуется.
Спасибо.