SELECT T.DID AS DID , T.YEAR AS YEAR, T.MONTH AS MONTH, T.UP_TIME AS UP_TIME, T.IN_NAME AS IN_NAME, T.IN_CODE AS IN_CODE , T.C_NAME AS C_NAME, T.C_CODE AS C_CODE , T.ORG_NAME AS ORG_NAME , T.ORG_CODE AS ORG_CODE, (case when X.COUNT is null then 0 else X.COUNT end) as COUNT FROM ( SELECT A.DID AS DID , A.YEAR AS YEAR, A.MONTH AS MONTH, A.UP_TIME AS UP_TIME, B.IN_NAME AS IN_NAME, B.IN_CODE AS IN_CODE , B.C_NAME AS C_NAME, B.C_CODE AS C_CODE , B.ORG_NAME AS ORG_NAME , B.ORG_CODE AS ORG_CODE FROM (SELECT DID,YEAR,MONTH,UP_TIME, FACT_NAME, FACT_CODE FROM CDA_FI_EQ_BOOK_M_LIST M WHERE 1=1 AND NOT EXISTS (SELECT DID FROM EQ_BOOK_M_CHECK_LOG L WHERE 1=1 AND M.DID = L.DID)) A LEFT JOIN ORG_ORDER B ON A.FACT_CODE = B.ORG_CODE WHERE 1=1 ) T left join
(SELECT DID,COUNT(1) AS COUNT FROM CDA_FID_EQ_BOOK_M_1 Q group by DID HAVING NOT EXISTS(SELECT DID FROM EQ_BOOK_M_CHECK_LOG P WHERE 1=1 AND Q.DID = P.DID)) X on T.DID = X.DID
原文:http://www.cnblogs.com/dbqjava/p/5249862.html