需求看起來很簡單,如果通過3條SQL去每個統計一遍是分分鐘的事
但如果放在一條SQL裏查詢所有數據,還是需要思考下。
SELECT NVL(SUM(DECODE(TO_CHAR(T.T_NETWORKTIME, 'YYYY'),
TO_CHAR(SYSDATE, 'YYYY'),
1,
0)),
0) LW_NUM,--統計當年聯網的企業數
NVL(SUM(DECODE(TO_CHAR(T.T_NETWORKTIME, 'YYYY'),
TO_CHAR(SYSDATE, 'YYYY'),
T.JKD_NUM,
0)),
0) JKD_NUM,--統計當年聯網企業所有監控點數
NVL(SUM(DECODE(T.T_SHZT, '待審覈', 1, 0)), 0) DSH_NUM --統計所有狀態爲待審覈的企業數
FROM (SELECT Q.T_NETWORKTIME,
Q.GUID,
Q.T_SHZT,
(SELECT COUNT(1)
FROM ZTS_JKDXX JKD
JOIN ZTS_PFKJBXX PFK
ON JKD.T_PWK_ID = PFK.GUID
WHERE PFK.T_QY_ID = Q.GUID) JKD_NUM --查詢每個企業對應的監控點數
FROM ZTS_QYJBXX Q) T --先查所有的企業數據