у меня есть следующая таблица
Log
Date date
Description varchar
ID integer
Учитывая дату в качестве параметра, я должен найти номер.или количество журналов, записываемых каждый день от даты начала до месяца после него с использованием рекурсивного cte. В некоторые дни может не быть журналов, поэтому я должен распечатать счет как 0.
ex:
select * from Log
возвращает
1 insert 2011-01-17
2 blah blah 2011-01-23
3 blah 2011-07-07
Для 2011-01-17 в качестве ввода, вывод должен быть
2011-01-17 1
2011-01-18 0
2011-01-19 0
....
2011-01-23 1
.....
2011-02-17 0
Я должен использовать рекурсивныйcte , чтобы сделать это. Я не знаю, как увеличить дату на 1 в каждой рекурсии и как остановить \ завершить рекурсию.
Это то, что я сделал до сих пор:
with cte as (
select '2011-01-17' as dat,count(*) as count
from log group by date
having date='2011-01-17'
union all
select dateadd(day,1,dat) as dat,count(*) as count
from log,cte
group by date
having date=dateadd(day,1,dat)
where dat<'2011-02-17'
)
select * from cte