Sql 将检查视图与日历视图联接

Sql 将检查视图与日历视图联接,sql,database,oracle,Sql,Database,Oracle,我有两种看法。一张支票: Check_Id Issued_Date Cleared_Date Amount 1 2017.01.03 2017.02.04 100 2 2017.03.03 2017.04.04 100 3 2017.08.03 100 ... 另一个只是日历: Day 2001.01.01 2001.01.02 2001.01.03 ..

我有两种看法。一张支票:

Check_Id    Issued_Date    Cleared_Date   Amount
1           2017.01.03     2017.02.04    100
2           2017.03.03     2017.04.04    100
3           2017.08.03                   100
...
另一个只是日历:

Day
2001.01.01
2001.01.02
2001.01.03
...
2100.12.31
我需要一个脚手架的画面。我希望实现的是,每一次检查,都要在签发日期至结算日期之间的日期中记录。如果没有清除日期,只需转到时间的末尾(本例中为2100.12.31)

即,对于检查id 1:

Day        Check_ID
2017.01.03 1
2017.01.03 1
2017.01.03 1
2017.01.03 1
...
2017.02.04 1
2017.08.03 3
2017.08.04 3
2017.08.05 3
2017.08.06 3
...
2100.12.31 3

有什么我读过的提示或资料吗?谢谢

这是一个非等联接:

select ca.day, c.check_id
from checks c join
     calendar ca
     on ca.day >= c.issued_date  and
        (c.cleared_date is null or c.cleared_date >= ca.date);