我正在尝试选择过去 10 天的销售数据,并在没有销售的情况下包含 0 的日期。
为此,我正在尝试使用双重和按级别连接,但我不知道为什么日期不匹配,并且查询失败。
这是基本的工作查询:
SELECT
current_date - (LEVEL - 1)
,(LEVEL - 1) as result
FROM Dual CONNECT BY Level <= 10
order by result desc
结果:
Current_date-(LEVEL-1) RESULT
13-MAR-15 9
14-MAR-15 8
15-MAR-15 7
16-MAR-15 6
17-MAR-15 5
18-MAR-15 4
19-MAR-15 3
20-MAR-15 2
21-MAR-15 1
22-MAR-15 0
所以我认为这会很好,现在我有了我想要的日期,我可以尝试添加一个子查询来获取销售额(我考虑过加入,但不清楚如何加入查询中的级别):
SELECT
current_date - (LEVEL - 1)
,(select count(1) from sales where for_date=(current_date - (LEVEL - 1))) as sale_volume
,(LEVEL - 1) as result
FROM Dual CONNECT BY Level <= 10
order by result desc
但是,它总是返回 0,即使在我知道有销售的日子里:
Current_date-(LEVEL-1) SALE_VOLUME RESULT
13-MAR-15 0 9
14-MAR-15 0 8
15-MAR-15 0 7
16-MAR-15 0 6
17-MAR-15 0 5
18-MAR-15 0 4
19-MAR-15 0 3
20-MAR-15 0 2
21-MAR-15 0 1
22-MAR-15 0 0