完成排行榜代码,还没测试

This commit is contained in:
2023-06-05 18:09:40 +08:00
parent 6f65e18672
commit 4eec8a9f18
3 changed files with 176 additions and 37 deletions

View File

@@ -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