2016年7月29日星期五

Cumulative No. of Patents Filed and Grant per Year (1 Apr)

SELECT Y1.Myyear||'/'||SUBSTR(TO_NUMBER(Y1.MYYEAR)+1,1) AS YEAR, SUM(Y2.FILCOUNT) AS "Cumulative Filing Case", SUM(Y2.GRTCOUNT) As "Cumulative Granted Case"
FROM 
    (   SELECT   Myyear AS ID, Myyear, SUM(FILCOUNT) AS FILCOUNT, SUM(GRTCOUNT) AS GRTCOUNT
        FROM (  SELECT extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -3)) as Myyear, COUNT (NVL(FILL.eventdate,FIL.eventdate)) AS FILCOUNT, NULL AS GRTCOUNT FROM CASES C
                LEFT JOIN CASEEVENT FIL ON C.CASEKEY = FIL.CASEKEY AND FIL.EVENTKEY = 10
                LEFT JOIN CASEEVENT FILL ON C.CASEKEY = FILL.CASEKEY AND FILL.EVENTKEY = 110 
                  JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
                  JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
                WHERE FIL.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1 
                GROUP BY extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -3)) 
                UNION
                SELECT extract (year from add_months(GRT.eventdate, -3)) as Myyear, NULL AS FILCOUNT, COUNT (GRT.EVENTDATE) AS GRTCOUNT FROM CASES C
                LEFT JOIN CASEEVENT GRT ON C.CASEKEY = GRT.CASEKEY AND GRT.EVENTKEY = 25
                  JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
                  JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
                WHERE GRT.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1 
                GROUP BY extract (year from add_months(GRT.eventdate, -3)) ) X1 
        GROUP BY MYYEAR ORDER BY 1 ) Y1
JOIN
    (   SELECT   Myyear AS ID, Myyear, SUM(FILCOUNT)  AS FILCOUNT, SUM(GRTCOUNT) AS GRTCOUNT
        FROM (  SELECT extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -3)) as Myyear, COUNT (NVL(FILL.eventdate,FIL.eventdate)) AS FILCOUNT, NULL AS GRTCOUNT FROM CASES C
                LEFT JOIN CASEEVENT FIL ON C.CASEKEY = FIL.CASEKEY AND FIL.EVENTKEY = 10 
                LEFT JOIN CASEEVENT FILL ON C.CASEKEY = FILL.CASEKEY AND FILL.EVENTKEY = 110 
                  JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
                  JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
                WHERE FIL.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1 
                GROUP BY extract (year from add_months(NVL(FILL.eventdate,FIL.eventdate), -3)) 
                UNION
                SELECT extract (year from add_months(GRT.eventdate, -3)) as Myyear, NULL AS FILCOUNT, COUNT (GRT.EVENTDATE) AS GRTCOUNT FROM CASES C
                LEFT JOIN CASEEVENT GRT ON C.CASEKEY = GRT.CASEKEY AND GRT.EVENTKEY = 25
                  JOIN CASENAME CN ON C.CASEKEY = CN.CASEKEY AND CN.NAMETYPEKEY = 206
                  JOIN NAME N ON CN.NAMEKEY = N.NAMEKEY AND ( N.NAME = 'xxxx' OR N.NAMECODE = 'xxxx' )
                WHERE GRT.EVENTDATE IS NOT NULL AND C.CASETYPEKEY = 1 
                GROUP BY extract (year from add_months(GRT.eventdate, -3)) ) X2 
        GROUP BY MYYEAR ORDER BY 1 ) Y2  ON Y1.ID >= Y2.ID
GROUP BY Y1.ID, Y1.Myyear        
ORDER BY 1 

沒有留言:

發佈留言