У меня есть таблица календаря с датами с 2000 по 2029 год. Я выполнил полное внешнее объединение с моей таблицей данных на дату = tdate. Моя цель - подсчитать количество поездок по дате и показать ноль, если поездок нет. Тем не менее, все даты не отображаются. Если в таблице данных нет даты поездки, дата из таблицы Календаря вообще не отображается. Я никогда не видел, чтобы это случилось раньше. Я попытался изменить его на левое внешнее соединение, которое тоже не сработало. Актуальный запрос ниже.
SELECT DISTINCT c.DATE,
COALESCE(COUNT(t.TripID), 0) AS tripCount
FROM dbo.Calendar c
FULL OUTER JOIN dbo.TripsMade t ON c.DATE = CONVERT(DATE, t.tripdate, 126)
WHERE (c.DATE BETWEEN '2019-09-01' AND '2019-09-30' )
AND (t.compid = 270 OR t.compid IS NULL)
GROUP BY c.DATE
ORDER BY c.DATE
Если я выберу все даты из таблицы календаря, они все там. В таблице данных отсутствуют даты, и всегда будут отсутствовать некоторые. Мне нужно, чтобы все даты отображались в этом отчете и показывали ноль, если на стороне таблицы данных нет связанных записей.
Что мне здесь не хватает?
ЦельДАТА TOTAL_TRIPS2019-09-01 32019-09-02 52019-09-03 0 <== Эта строка в настоящее время полностью отсутствует2019-09-04 42019-09-05 0 <== Эта строка в настоящее время полностью отсутствует2019-09-06 9</p>