select
a.计划数量,
a.PROD_TYPE,
b.PROD_TYPE,
a.START_DATE,
b.START_DATE,
b.完成数量
from(SELECT
PROD_TYPE,
CAST(COUNT(WORK_ORDER_ID) AS float) AS 计划数量,
SUBSTR(START_DATE, 1, 7) AS START_DATE,
MAX(TO_CHAR(DATA_TIME, 'YYYY-MM')) AS 统计日期,
MAX(STAT_TIME) AS 创建时间
FROM DWS_WORK_ORDER_INFO
GROUP BY SUBSTR(START_DATE, 1, 7), PROD_TYPE) a
LEFT JOIN (
--已完成
SELECT CAST(COUNT(WORK_ORDER_ID) AS float) AS 完成数量,
SUBSTR(START_DATE,1,7) AS START_DATE,
PROD_TYPE
FROM DWS_WORK_ORDER_INFO
WHERE IF_COMP = '是'
GROUP BY SUBSTR(START_DATE,1,7), PROD_TYPE ) b
-- 这里可以使用 NVL() ,IFNULL() 函数均可以
ON COALESCE(a.PROD_TYPE,-1) = COALESCE(b.PROD_TYPE,-1)
AND a.START_DATE = b.START_DATE