谢谢@ Gordon,@ Mihai这是我尝试过的,现在正在工作。
SELECT DISTINCT SUBSTR(cmse_application_number,1,3) App_Type,
TO_CHAR(cmse_created_date,'YYYY-MM') Period,
COUNT(SUBSTR(cmse_application_number,1,3)) APP_TYPE_COUNT,
SUM(COUNT(SUBSTR(cmse_application_number,1,3))) OVER(PARTITION BY TO_CHAR(cmse_created_date,'YYYY-MM') ORDER BY TO_CHAR(cmse_created_date,'YYYY-MM')) App_MONTH_TOTAL,
COUNT(SUBSTR(cmse_application_number,1,3))-lag(COUNT(SUBSTR(cmse_application_number,1,3))) over(PARTITION BY TO_CHAR(cmse_created_date,'YYYY-MM') ORDER BY TO_CHAR(cmse_created_date,'YYYY-MM')) AS NSRDiff ,
COUNT(SUBSTR(cmse_application_number,1,3))-LEAD(COUNT(SUBSTR(cmse_application_number,1,3))) over(PARTITION BY TO_CHAR(cmse_created_date,'YYYY-MM') ORDER BY TO_CHAR(cmse_created_date,'YYYY-MM')) AS DSRDiff
FROM
(SELECT DISTINCT cmse_service_number,
CMSE_APPLICATION_NUMBER,
CMSE_CREATED_DATE,
cmse_ss_uid
FROM cmse_service_enquiry a ,
cmlt_line_type l,
subd_detail s,
bst_type t -- links to subd to eliminate failed applications
WHERE A.CMSE_CMLT_UID =L.CMLT_UID
AND A.CMSE_BST_UID =T.BST_UID
AND A.CMSE_SERVICE_NUMBER = S.SUBD_SERVICE_NAME
AND SUBSTR(cmse_application_number,1,3) IN ('NSR','DSR')
-- AND TO_CHAR(cmse_created_date,'YYYY-MM')='2014-10' -- filter to check specific period
AND cmse_ss_uid=58 -- makes sure workflow completes
)
GROUP BY SUBSTR(cmse_application_number,1,3) ,
TO_CHAR(cmse_created_date,'YYYY-MM')
ORDER BY 2 DESC ;
那么你有什么尝试,如果有什么? – Mihai 2014-10-20 14:13:54