私は次の表を持っています
Log
Date date
Description varchar
ID integer
パラメータとして日付を指定すると、いいえを見つける必要があります。または、再帰 cte を使用して、開始日から 1 か月後まで毎日記録されたログの数。 一部の日にはログがない場合があるため、カウントを 0 として出力する必要があります。
元:
select * from Log
戻り値
1 insert 2011-01-17
2 blah blah 2011-01-23
3 blah 2011-07-07
2011 年 1 月 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