oracle 查询当月每天数据,怎么写

当月每天的都要进行查询,没有数据设置为0... 当月每天的都要进行查询,没有数据设置为0 展开
 我来答
blademaster717
2017-04-22 · TA获得超过1456个赞
知道小有建树答主
回答量:882
采纳率:97%
帮助的人:368万
展开全部
--1、考虑到没有数据的也要总结出一条0的记录,那我们需要先生成一张当月的日期中间表
SELECT FDATE
   FROM (SELECT TRUNC(SYSDATE, 'MONTH') + LEVEL - 1 AS FDATE
           FROM DUAL
         CONNECT BY LEVEL <= 31) T
  WHERE TO_CHAR(FDATE, 'MM') = TO_CHAR(SYSDATE, 'MM')

--2、以上边的表作为左链接的表,与你的数据表的日期做关联查询就可以得出你要的结果
SELECT A.FDATE, NVL(B.FNUM, 0)
  FROM (SELECT FDATE
          FROM (SELECT TRUNC(SYSDATE, 'MONTH') + LEVEL - 1 AS FDATE
                  FROM DUAL
                CONNECT BY LEVEL <= 31) T
         WHERE TO_CHAR(FDATE, 'MM') = TO_CHAR(SYSDATE, 'MM')) A
  LEFT JOIN (SELECT 日期字段名 AS FDATE, COUNT(1) AS FNUM
               FROM 表名 B
              WHERE TO_CHAR(日期字段名, 'YYYYMM') = TO_CHAR(SYSDATE, 'YYYYMM')
              GROUP BY 日期字段名) B
    ON A.FDATE = B.FDATE
 ORDER BY A.FDATE

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式