У меня такое ощущение, что я делаю здесь какую-то глупую ошибку, однако я пытаюсь сделать запрос по двум таблицам.Одна таблица содержит значение, которое я хочу агрегировать, в данном случае я вызвал таблицу StoreCharge.Другая таблица содержит значения, которые я хочу посчитать.
SELECT StoreCharge.StoreId,
COUNT(DISTINCT(ISNULL(WholesalerInvoice.WholesalerId,0))) AS Invoices
FROM StoreCharge
LEFT OUTER JOIN
WholesalerInvoice ON StoreCharge.StoreId = WholesalerInvoice.StoreId
WHERE StoreCharge.CompanyId = 2
AND WholesalerInvoice.StoreInvoiceId IS NULL
AND DATEDIFF(day,WholesalerInvoice.InvoiceDate,'20100627') > =0
AND DATEDIFF(day,dateadd(day,-7,'20100627'),WholesalerInvoice.InvoiceDate) > 0
GROUP BY StoreCharge.StoreId
Моя проблема в том, что если в таблице подсчета есть строки, соответствующие предложению WHERE, запрос работает нормально.Однако, когда ни одна строка не соответствует критерию, ничего не возвращается вместо списка значений в StoreCharge со счетчиком 0.