У меня есть такая таблица:
created_date | id | status | completed_date
2019-03-20 | 1 | Open |
2019-03-20 | 2 | Open |
2019-03-19 | 3 | Comp | 2019-03-21
2019-03-21 | 4 | Comp | 2019-03-22
2019-03-22 | 5 | Comp | 2019-03-22
2019-03-18 | 6 | Open |
Я хочу найти количество всех ID
, которые были созданы до '2019-03-21'
и имели статус 'Open'
ИЛИ они были созданы до '2019-03-21'
и даже имели статус 'Comp'
, но они были завершены после '2019-03-21'
.
Ниже приведен мой запрос:
SELECT
CAST(CREATED AS DATE),
COUNT(DISTINCT id)
FROM testtable
WHERE
(CAST(CREATED AS DATE) <= '2019-03-21' AND status = 'Open')
OR (
CAST(CREATED AS DATE) <= '2019-03-21' AND status='Comp'
AND CAST(COMPLETED AS DATE) > '2019-03-21'
)
Это дает правильный результат. то есть 21-го числа 4 удостоверения личности были открыты. Но сейчас я хочу эту информацию за последние 4 дня. Как мне изменить этот запрос, чтобы сделать это ??
Вывод должен быть:
created_date | count(ID)
2019-03-21 | 4
2019-03-20 | 4
2019-03-19 | 2
2019-03-18 | 1
Пожалуйста, помогите !!