DECLARE 
O_T_C VARCHAR2(50), 
D_T_C VARCHAR2(2) ,
F_M   VARCHAR2(20) 

SET DataFileTypeCode=?
SET F_Month=?
SET OrgnizationTypeCode=? 

SELECT
    TO_CHAR(SUM(OrgTotal))            as OrgTotal,
TO_CHAR(SUM(UpdateOrgTotal))      as UpdateOrgTotal,
SUM(OrgTotal)-SUM(UpdateOrgTotal) as UnUpdateOrgTotal
FROM 
(Select 
     Count(a.OrgnizationID) OrgTotal,0 UpdateOrgTotal 
 FROM 
     app_orgnization a,dss_orgnization b
 WHERE 
     a.orgnizationid = b.orgnizationid 
     and
     b.OrgnizationTypeCode=O_T_C 
         and  
         F_M||'-01' between b.starttime and b.endtime 
 
 UNION ALL 
 
 select 
     0 OrgTotal,
     Count(a.OrgnizationID) UpdateOrgTotal 
 from 
     VIEW_App_UpLoadDataFile a,dss_orgnization b
 WHERE 
     a.orgnizationid = b.orgnizationid 
     and 
     F_M||'-02' between b.starttime and b.endtime
   AND 
   b.OrgnizationTypeCode=O_T_C 
   AND 
   DataFileTypeCode=D_T_C 
   AND 
   ReportAuditingStateCode not in ('1','7','8') 
   and 
   ReturnStateCode <> 0 
   AND 
   F_Month=F_M) AS TmpUNION ALLselect 
    a.OrgnizationID ,a.orgname,100 
from 
    app_orgnization a,dss_orgnization b
where 
    a.OrgnizationID not in(select 
                               distinct a.OrgnizationID 
                           from 
                               VIEW_App_UpLoadDataFile a,dss_orgnization b
                     WHERE 
                         a.orgnizationid = b.orgnizationid 
                         and 
                         F_M||'-02' between b.starttime and b.endtime
                       and
                       b.OrgnizationTypeCode=O_T_C 
                       AND 
                       DataFileTypeCode=D_T_C 
                         AND 
                         ReportAuditingStateCode not in ('1','7','8')
                         and 
                         ReturnStateCode<>0 AND F_Month=F_M)
and 
b.OrgnizationTypeCode=O_T_C
and 
a.orgnizationid = b.orgnizationid 
    and 
    F_M||'-01' between b.starttime and b.endtime