有个A表 有字段date sal
比如
select * from A
然后我有些日期没有数据 比如说10.1号有数据 10.2没 10.3有
查出来就是
10.1 199
10.3 222
我想要的结果是
10.1 199
10.2 0
10.3 222
就是如果某天没记录也要给个默认值
比如
select * from A
然后我有些日期没有数据 比如说10.1号有数据 10.2没 10.3有
查出来就是
10.1 199
10.3 222
我想要的结果是
10.1 199
10.2 0
10.3 222
就是如果某天没记录也要给个默认值
你要有个范围吧,
加入这一个月内的,
可以通过SYSDATE进行一天一天的判断去找,没有返回0
select 开始日期+rownum-1 from dual connect rownum<=结束日期-开始日期+1
构造连续日期,然后左连接你的A表
SELECT TO_CHAR(T.DUAL_COL1, 'mm.dd'), NVL(TEST1.sal, 0)
FROM TEST1,
(SELECT TO_DATE('10.1', 'mm.dd') + ROWNUM - 1 AS DUAL_COL1
FROM DUAL
CONNECT BY ROWNUM < 30) T
WHERE T.DUAL_COL1 = TO_DATE(COL1(+), 'mm.dd')
ORDER BY T.DUAL_COL1