完成排行榜代码,还没测试
This commit is contained in:
		@@ -6,6 +6,10 @@ CREATE OR REPLACE PACKAGE telsale_archievement_pkg IS
 | 
			
		||||
 | 
			
		||||
    TYPE cur_type IS REF CURSOR;
 | 
			
		||||
 | 
			
		||||
    -- <20>쳣
 | 
			
		||||
    DEPARTMENTCODE_EXCEPTION_CODE CONSTANT INTEGER := -20000;
 | 
			
		||||
    DEPARTMENTCODE_EXCEPTION_MSG  CONSTANT VARCHAR2(100) := '<27><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>Ч';
 | 
			
		||||
 | 
			
		||||
    PROCEDURE department_archievement
 | 
			
		||||
    (
 | 
			
		||||
        a_department_code IN VARCHAR2,
 | 
			
		||||
@@ -17,8 +21,11 @@ CREATE OR REPLACE PACKAGE telsale_archievement_pkg IS
 | 
			
		||||
 | 
			
		||||
    PROCEDURE caller_arch_ranking_list
 | 
			
		||||
    (
 | 
			
		||||
        a_department_code     IN VARCHAR2,
 | 
			
		||||
        a_chefei_ranking_list OUT cur_type
 | 
			
		||||
        a_department_code        IN VARCHAR2,
 | 
			
		||||
        a_year                   IN VARCHAR2,
 | 
			
		||||
        a_month                  IN VARCHAR2,
 | 
			
		||||
        a_attaching_ranking_list OUT cur_type,
 | 
			
		||||
        a_renewal_ranking_list   OUT cur_type
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
END telsale_archievement_pkg;
 | 
			
		||||
@@ -46,11 +53,19 @@ CREATE OR REPLACE PACKAGE BODY telsale_archievement_pkg IS
 | 
			
		||||
        l_firstday   := to_date(to_char(SYSDATE,
 | 
			
		||||
                                        'yyyy') || '-01-01 00:00:00',
 | 
			
		||||
                                'yyyy-mm-dd hh24:mi:ss');
 | 
			
		||||
        -- ȡ<>ò<EFBFBD><EFBFBD>Ŵ<EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
        SELECT bm.department_name
 | 
			
		||||
          INTO l_department_name
 | 
			
		||||
          FROM idst0.bm_t bm
 | 
			
		||||
         WHERE bm.department_code = a_department_code;
 | 
			
		||||
        -- <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
        BEGIN
 | 
			
		||||
            SELECT department_name
 | 
			
		||||
              INTO l_department_name
 | 
			
		||||
              FROM idst0.bm_t bm
 | 
			
		||||
             WHERE bm.department_code = a_department_code;
 | 
			
		||||
        EXCEPTION
 | 
			
		||||
            -- <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><D7B3>쳣
 | 
			
		||||
            WHEN NO_DATA_FOUND THEN
 | 
			
		||||
                raise_application_error(DEPARTMENTCODE_EXCEPTION_CODE,
 | 
			
		||||
                                        DEPARTMENTCODE_EXCEPTION_MSG);
 | 
			
		||||
            
 | 
			
		||||
        END;
 | 
			
		||||
    
 | 
			
		||||
        --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8>
 | 
			
		||||
        SELECT decode(SUM(cf.<2E><><EFBFBD>ո<EFBFBD><D5B8>˿ͻ<CBBF><CDBB><EFBFBD><EFBFBD><EFBFBD>),
 | 
			
		||||
@@ -102,32 +117,55 @@ CREATE OR REPLACE PACKAGE BODY telsale_archievement_pkg IS
 | 
			
		||||
             ORDER BY cf.<2E>·<EFBFBD>;
 | 
			
		||||
    END;
 | 
			
		||||
 | 
			
		||||
    /*******************************************************/
 | 
			
		||||
    -- <20><>ϯ<EFBFBD><CFAF><EFBFBD>а<EFBFBD>
 | 
			
		||||
    PROCEDURE caller_arch_ranking_list
 | 
			
		||||
    (
 | 
			
		||||
        a_department_code     IN VARCHAR2,
 | 
			
		||||
        a_chefei_ranking_list OUT cur_type
 | 
			
		||||
        a_department_code        IN VARCHAR2,
 | 
			
		||||
        a_year                   IN VARCHAR2,
 | 
			
		||||
        a_month                  IN VARCHAR2,
 | 
			
		||||
        a_attaching_ranking_list OUT cur_type,
 | 
			
		||||
        a_renewal_ranking_list   OUT cur_type
 | 
			
		||||
    ) IS
 | 
			
		||||
        l_current_month VARCHAR2(10);
 | 
			
		||||
        l_current_year  VARCHAR2(4);
 | 
			
		||||
        l_department_name VARCHAR2(100);
 | 
			
		||||
    BEGIN
 | 
			
		||||
        l_current_month := to_char(SYSDATE,
 | 
			
		||||
                                   'mm');
 | 
			
		||||
        l_current_year  := to_char(SYSDATE,
 | 
			
		||||
                                   'yyyy');
 | 
			
		||||
        -- <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
        BEGIN
 | 
			
		||||
            SELECT department_name
 | 
			
		||||
              INTO l_department_name
 | 
			
		||||
              FROM idst0.bm_t bm
 | 
			
		||||
             WHERE bm.department_code = a_department_code;
 | 
			
		||||
        EXCEPTION
 | 
			
		||||
            -- <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><D7B3>쳣
 | 
			
		||||
            WHEN NO_DATA_FOUND THEN
 | 
			
		||||
                raise_application_error(DEPARTMENTCODE_EXCEPTION_CODE,
 | 
			
		||||
                                        DEPARTMENTCODE_EXCEPTION_MSG);
 | 
			
		||||
            
 | 
			
		||||
        END;
 | 
			
		||||
    
 | 
			
		||||
        OPEN a_chefei_ranking_list FOR
 | 
			
		||||
        -- <20><><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD>                           
 | 
			
		||||
        OPEN a_attaching_ranking_list FOR
 | 
			
		||||
            SELECT <20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
 | 
			
		||||
                   round(SUM(<28><><EFBFBD><EFBFBD><EFBFBD>ںϱ<DABA><CFB1><EFBFBD>) / SUM(<28><><EFBFBD>ո<EFBFBD><D5B8>˿ͻ<CBBF><CDBB><EFBFBD><EFBFBD><EFBFBD>) * 100,
 | 
			
		||||
                   round(nvl(SUM(<28><><EFBFBD><EFBFBD><EFBFBD>ںϱ<DABA><CFB1><EFBFBD>) / SUM(<28><><EFBFBD>ո<EFBFBD><D5B8>˿ͻ<CBBF><CDBB><EFBFBD><EFBFBD><EFBFBD>),
 | 
			
		||||
                             0) * 100,
 | 
			
		||||
                         2) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8>
 | 
			
		||||
              FROM <20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>ÿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>
 | 
			
		||||
             WHERE <20>·<EFBFBD> = l_current_month
 | 
			
		||||
               AND <20><><EFBFBD><EFBFBD> = l_current_year
 | 
			
		||||
             WHERE <20>·<EFBFBD> = a_month
 | 
			
		||||
               AND <20><><EFBFBD><EFBFBD> = a_year
 | 
			
		||||
               AND <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD> = a_department_code
 | 
			
		||||
             GROUP BY <20>·<EFBFBD>,
 | 
			
		||||
                      <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>,
 | 
			
		||||
                      <20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>
 | 
			
		||||
             GROUP BY <20><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
            --HAVING <20>·<EFBFBD> = '06<30><36>'
 | 
			
		||||
             ORDER BY <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8> DESC;
 | 
			
		||||
    
 | 
			
		||||
        -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD>
 | 
			
		||||
        OPEN a_renewal_ranking_list FOR
 | 
			
		||||
            SELECT <20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
 | 
			
		||||
                   round(nvl(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD> / <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * 100,
 | 
			
		||||
                             0),
 | 
			
		||||
                         2) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
              FROM <20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3> xb
 | 
			
		||||
             WHERE xb.<2E><><EFBFBD><EFBFBD> = '<27><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>'
 | 
			
		||||
             ORDER BY <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DESC;
 | 
			
		||||
    END;
 | 
			
		||||
 | 
			
		||||
BEGIN
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user