SELECT
dtime.sysmonth,
opos.orderby_person,
CASE
WHEN opos."消耗金额" IS NULL THEN
0 ELSE opos."消耗金额"
END
FROM
(
SELECT
DISTINCTto_char ( onday, 'yyyymm' ) sysmonthFROM (
SELECT cast
( '2015-01-01 00:00:00' AS TIMESTAMP ) + ( c || 'day' ) :: INTERVAL AS onday
FROM
generate_series ( 0, 10300 ) AS tab ( c )
) tb
WHERE
onday <= CURRENT_DATEORDER BY TO_CHAR( onday, 'yyyymm' )
) dtime
LEFT OUTER JOIN ( SELECT * FROM dm.dm_operation_per_order_statistics ) opos ON opos.sh_month = dtime.sysmonth
ORDER BY
dtime.sysmonth