college_total.sql

来自「一个挺好的招生管理系统」· SQL 代码 · 共 30 行

SQL
30
字号
--院校招生情况统计表 COLLEGE_TOTAL
CREATE OR REPLACE PROCEDURE COLLEGE_TOTAL
		AS
V_YXBH NUMBER(4);
 		V_AVG NUMBER(4);
 		V_MAX NUMBER(4);
 		V_MIN NUMBER(4);
 		V_BOY NUMBER(3);
 		V_GIRL NUMBER(3);
 		V_ZSRS NUMBER(3);
		 V_LQRS NUMBER(3);
		 V_YXMC VARCHAR2(20);
 		CURSOR STU_CURSOR IS
 		SELECT 录取院校,AVG(总分),MAX(总分),MIN(总分) FROM STUDENT GROUP BY 录取院校 ORDER BY AVG(总分) DESC;
BEGIN
  		DBMS_OUTPUT.PUT_LINE('院校编号 院校名称   招生人数 录取人数 男生人数 女生人数 最高分数 最低分数 平均分数');
  		OPEN STU_CURSOR;
  		LOOP 
		   FETCH STU_CURSOR INTO 		V_YXBH,V_AVG,V_MAX,V_MIN;
  		 EXIT WHEN STU_CURSOR%NOTFOUND;
  		IF V_YXBH IS NOT NULL THEN
   		 SELECT 院校名称,招生人数,录取人数 INTO V_YXMC,V_ZSRS,V_LQRS 
FROM COLLEGE WHERE 院校编号=V_YXBH;
		    SELECT COUNT(*) INTO V_BOY FROM STUDENT WHERE 录取院校=V_YXBH AND 性别=1;
    		SELECT COUNT(*) INTO V_GIRL FROM STUDENT WHERE 录取院校=V_YXBH AND 性别=2;
    		DBMS_OUTPUT.PUT_LINE(RPAD(V_YXBH,8,' ')||RPAD(V_YXMC,18,' ')||RPAD(V_ZSRS,9,' ')||RPAD(V_LQRS,9,' ')||RPAD(V_BOY,9,' ')||RPAD(V_GIRL,9,' ')||RPAD(V_MAX,9,' ')||RPAD(V_MIN,9,' ')||RPAD(V_AVG,9,' ')); 
    		END IF; 
  		END LOOP;
  		CLOSE STU_CURSOR;
		END;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?