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 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章