oracle 近一周 一月查询sql

oracle最近一周、最近一月sql:

最近一周:

SELECT 
    to_char (SYSDATE- LEVEL + 1, 'yyyy-mm-dd') createTime  
  FROM
    DUAL connect BY LEVEL <= 7

最近一月:

SELECT 
    to_char (SYSDATE- LEVEL + 1, 'yyyy-mm-dd') createTime  
  FROM
    DUAL connect BY LEVEL <= sysdate-(add_months(sysdate,-1))

 

近一个月数据,每日都要显示,无数据补0:

select days.createTime,nvl(m.censusCount,0) as censusCount,nvl(m.samplingCount,0) as samplingCount,nvl(m.inhospitalCount,0) as inhospitalCount
from
 ( SELECT 
    to_char (SYSDATE- LEVEL + 1, 'yyyy-mm-dd') createTime  
  FROM
    DUAL connect BY LEVEL <= sysdate-(add_months(sysdate,-1))) days
 LEFT JOIN
(
SELECT
    COUNT (distinct decode(RECOG_BUSI,11,decode(STATUS,11,MEDICAL_ID,12,MEDICAL_ID))) as censusCount,
    COUNT (distinct decode(RECOG_BUSI,10,MEDICAL_ID)) as samplingCount,
    COUNT (distinct decode(RECOG_BUSI,11,MEDICAL_ID)) as inhospitalCount,
    TO_CHAR (CREATE_TIME, 'YYYY-MM-dd') createTime
FROM
    t_plan
where create_time > add_months(sysdate,-1)
GROUP BY
    TO_CHAR (CREATE_TIME, 'YYYY-MM-dd') ORDER BY TO_CHAR (CREATE_TIME, 'YYYY-MM-dd') ASC
) m 
on days.createTime = m.createTime
GROUP BY days.createTime ,m.censusCount,m.samplingCount,m.inhospitalCount
ORDER BY days.createTime 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值