查询所有日期,如下
SELECT '2018-11-' || TRIM(TO_CHAR(ROWNUM, '00')) AS DAYS FROM DUAL
CONNECT BY ROWNUM <= TO_NUMBER(TO_CHAR(LAST_DAY(TO_DATE('2018-11-01', 'YYYY-MM-DD')), 'DD'))
结果如下
SELECT NVL(DAYS, '合计') DAYS,
SUM(蚌埠水位) 蚌埠水位,
SUM(蚌埠流量) 蚌埠流量,
SUM(蚌埠流量) 蚌埠流量,
SUM(三河闸流量) 三河闸流量,
SUM(高邮湖御码头水位) 三河闸流量,
SUM(邵伯湖水位) 邵伯湖水位,
SUM(万福闸水位) 万福闸水位,
SUM(万福闸流量) 万福闸流量,
SUM(高邮水位) 高邮水位,
SUM(高邮雨量) 高邮雨量,
SUM(兴化水位) 兴化水位,
SUM(城区水位) 城区水位,
SUM(三垛水位) 三垛水位,
SUM(三垛雨量) 三垛雨量,
SUM(横泾水位) 横泾水位,
SUM(横泾雨量) 横泾雨量,
SUM(临泽水位) 临泽水位,
SUM(临泽雨量) 临泽雨量,
SUM(八桥水位) 八桥水位,
SUM(八桥雨量) 八桥雨量,
SUM(界首水位) 界首水位,
SUM(界首雨量) 界首雨量
FROM (SELECT T.DAYS,
T_S.蚌埠水位,
T_L.蚌埠流量,
T_S.三河闸水位,
T_L.三河闸流量,
T_S.高邮湖御码头水位,
T_S.邵伯湖水位,
T_S.万福闸水位,
T_L.万福闸流量,
T_S.高邮水位,
T_Y.高邮雨量,
T_S.兴化水位,
T_S.城区水位,
T_S.三垛水位,
T_Y.三垛雨量,
T_S.横泾水位,
T_Y.横泾雨量,
T_S.临泽水位,
T_Y.临泽雨量,
T_S.八桥水位,
T_Y.八桥雨量,
T_S.界首水位,
T_Y.界首雨量
FROM (SELECT '2018-11-' || TRIM(TO_CHAR(ROWNUM, '00')) AS DAYS
FROM DUAL
CONNECT BY ROWNUM <= TO_NUMBER(TO_CHAR(LAST_DAY(TO_DATE('2018-11-01',
'YYYY-MM-DD')),
'DD'))) T
LEFT JOIN (SELECT TO_CHAR(MONITOR_DATE, 'YYYY-MM-DD') MONITOR_DATE,
SUM(蚌埠) 蚌埠流量,
SUM(三河闸) 三河闸流量,
SUM(万福闸) 万福闸流量
FROM (SELECT WD.MONITOR_DATE,
WD.AVG_FLOW,
M.SHORT_NAME,
WD.AVG_WATER_LEVEL
FROM WM_TD_WATER_DAILY WD
INNER JOIN (SELECT T.ID,
T.SHORT_NAME,
T.SELF_CODE,
T.MONITOR_TYPE
FROM BI_TB_MONITOR_BI T
WHERE EXISTS
(SELECT T1.ID
FROM BI_TB_MONITOR_BI T1
WHERE REGION_ID = '6-100-018'
AND MONITOR_TYPE = '00'
AND T.PARENT_ID = T1.ID)) M
ON WD.MONITOR_ID = M.ID
WHERE WD.REGION_ID = '6-100-018')
PIVOT(SUM(AVG_FLOW)
FOR SHORT_NAME IN('蚌埠' 蚌埠,
'三河闸' 三河闸,
'高邮湖御码头' 高邮湖御码头,
'邵伯湖' 邵伯湖,
'万福闸' 万福闸,
'高邮水位' 高邮水位,
'兴化' 兴化,
'城区' 城区,
'三垛水位' 三垛水位,
'横泾水位' 横泾水位,
'临泽水位' 临泽水位,
'八桥水位' 八桥水位,
'界首水位' 界首水位))
WHERE TO_CHAR(MONITOR_DATE, 'YYYY-MM') = '2018-11'
GROUP BY MONITOR_DATE) T_L
ON T.DAYS = T_L.MONITOR_DATE
LEFT JOIN (SELECT TO_CHAR(MONITOR_DAY, 'YYYY-MM-DD') MONITOR_DAY,
SUM(高邮雨量) 高邮雨量,
SUM(三垛雨量) 三垛雨量,
SUM(横泾雨量) 横泾雨量,
SUM(临泽雨量) 临泽雨量,
SUM(八桥雨量) 八桥雨量,
SUM(界首雨量) 界首雨量
FROM (SELECT RD.MONITOR_DAY,
RD.DAILY_RAIN_FALL,
M.MONITOR_TYPE,
M.SHORT_NAME
FROM IA_TD_RAIN_DATA_DAILY RD
INNER JOIN (SELECT T.ID,
T.SHORT_NAME,
T.SELF_CODE,
T.MONITOR_TYPE
FROM BI_TB_MONITOR_BI T
WHERE EXISTS
(SELECT T1.ID
FROM BI_TB_MONITOR_BI T1
WHERE REGION_ID = '6-100-018'
AND MONITOR_TYPE = '00'
AND T.PARENT_ID = T1.ID)) M
ON RD.MONITOR_ID = M.ID
WHERE RD.REGION_ID = '6-100-018')
PIVOT(SUM(DAILY_RAIN_FALL)
FOR SHORT_NAME IN('高邮雨量' 高邮雨量,
'三垛雨量' 三垛雨量,
'横泾雨量' 横泾雨量,
'临泽雨量' 临泽雨量,
'八桥雨量' 八桥雨量,
'界首雨量' 界首雨量))
WHERE TO_CHAR(MONITOR_DAY, 'YYYY-MM') = '2018-11'
GROUP BY MONITOR_DAY) T_Y
ON T.DAYS = T_Y.MONITOR_DAY
LEFT JOIN (SELECT TO_CHAR(MONITOR_DATE, 'YYYY-MM-DD') MONITOR_DATE,
SUM(蚌埠) 蚌埠水位,
SUM(三河闸) 三河闸水位,
SUM(高邮湖御码头) 高邮湖御码头水位,
SUM(邵伯湖) 邵伯湖水位,
SUM(万福闸) 万福闸水位,
SUM(高邮水位) 高邮水位,
SUM(兴化) 兴化水位,
SUM(城区) 城区水位,
SUM(三垛水位) 三垛水位,
SUM(横泾水位) 横泾水位,
SUM(临泽水位) 临泽水位,
SUM(八桥水位) 八桥水位,
SUM(界首水位) 界首水位
FROM (SELECT WD.MONITOR_DATE,
WD.AVG_FLOW,
M.SHORT_NAME,
WD.AVG_WATER_LEVEL,
MONITOR_TYPE
FROM WM_TD_WATER_DAILY WD
INNER JOIN (SELECT T.ID,
T.SHORT_NAME,
T.SELF_CODE,
T.MONITOR_TYPE
FROM BI_TB_MONITOR_BI T
WHERE EXISTS
(SELECT T1.ID
FROM BI_TB_MONITOR_BI T1
WHERE REGION_ID = '6-100-018'
AND MONITOR_TYPE = '00'
AND T.PARENT_ID = T1.ID)) M
ON WD.MONITOR_ID = M.ID
WHERE WD.REGION_ID = '6-100-018')
PIVOT(SUM(AVG_WATER_LEVEL)
FOR SHORT_NAME IN('蚌埠' 蚌埠,
'三河闸' 三河闸,
'高邮湖御码头' 高邮湖御码头,
'邵伯湖' 邵伯湖,
'万福闸' 万福闸,
'高邮水位' 高邮水位,
'兴化' 兴化,
'城区' 城区,
'三垛水位' 三垛水位,
'横泾水位' 横泾水位,
'临泽水位' 临泽水位,
'八桥水位' 八桥水位,
'界首水位' 界首水位))
WHERE TO_CHAR(MONITOR_DATE, 'YYYY-MM') = '2018-11'
GROUP BY MONITOR_DATE) T_S
ON T.DAYS = T_S.MONITOR_DATE)
GROUP BY ROLLUP(DAYS)
ORDER BY DAYS