У меня следующий запрос
SELECT
COUNT(c.ID) as RECORD_COUNT, c.WEEK_START, c.LABEL
FROM
(SELECT
a.ID, TRUNC(a.START_DATE,'IW') WEEK_START, 'YES' as LABEL
FROM
TABLE1 a
UNION ALL
SELECT
b.ID, TRUNC(b.START_DATE,'IW') WEEK_START, 'NO' as LABEL
FROM
TABLE1 b
WHERE
FUNCTION(b.ID) = 'Test') AS c
То, что я получаю, - это количество записей в неделю, тех, которые появились в первом подзапросе с меткой YES
, и количество записей внеделю, появившуюся во втором подзапросе с меткой NO
.
Пример:
RECORD_COUNT WEEK_START LABEL
100 1/28/2019 YES
24 1/28/2019 NO
81 2/4/2019 YES
229 2/11/2019 YES
6 2/11/2019 NO
Часто второй подзапрос не возвращает никаких записей, поэтому я пропускаю строки для некоторых дат.
В приведенном выше примере это былоничего не вернуть для строки NO
для 2/4/2019
.
Как я могу изменить свой запрос, чтобы он возвращал нули для строк, в которых нет данных?
Что бы яхотелось бы увидеть что-то вроде этого:
RECORD_COUNT WEEK_START LABEL
100 1/28/2019 YES
24 1/28/2019 NO
81 2/4/2019 YES
0 2/4/2019 NO
229 2/11/2019 YES
6 2/11/2019 NO