CREATE OR REPLACE PROCEDURE "ALL_COURSE_TYPE_REPORT"
AS
ACTR_COURSE_ID VARCHAR2(20); --科目编号
ACTR_COURSE_NAME VARCHAR2(8); --科目名称
ACTR_YEAR VARCHAR2(4); --年份
ACTR_EXAM_TIMES VARCHAR2(20);--考试次数
ACTR_EXAM_TIME VARCHAR2(100);--考试时间
ACTR_APPLY_TIMES VARCHAR2(8); --报考科次
ACTR_EXAM_COURSE_TIMES VARCHAR2(8);--考试科次
ACTR_PASS_TIMES VARCHAR2(8); --通过科次
ACTR_PASS_PERCENT VARCHAR2(8); --通过率
ACTR_JOIN_COUNT VARCHAR2(8); --参考人数
ACTR_JOIN_PERCENT VARCHAR2(8); --参考率
/**
查询所有科目
*/
CURSOR COURSE IS SELECT SCI.SCI_COURSE_ID,SCI.SCI_COURSE_NAME FROM SAC_COURSE_INFO SCI;
BEGIN
/**
查询当前年份
*/
SELECT TO_CHAR(SYSDATE,'YYYY') INTO YEAR_NO FROM DUAL;
/**
循环结果集
*/
FOR CS IN COURSE LOOP
/**
赋值
*/
ACTR_COURSE_ID := CS.SCI_COURSE_ID;
ACTR_COURSE_NAME := CS.SCI_COURSE_NAME;
/**
查询具体科目
*/
SELECT SUBSTR(SSG.SSG_EXAM_TIME,1,7) AS EXAMTIMES FROM SAC_STUDENT_GRADE SSG WHERE SSG.SSG_EXAM_TIME LIKE '%'||YEAR_NO||'%'AND SSG.SSG_EXAM_COURSE_CODE=CS.SCI_COURSE_ID GROUP BY SUBSTR(SSG.SSG_EXAM_TIME,1,7);
FOR EXAM IN EXAMALL LOOP
ACTR_EXAM_TIME:=EXAMALL.EXAMTIMES;
/**
考试次数
*/
SELECT COUNT(DISTINCT SSG.SSG_EXAM_TIME) AS ACTR_EXAM_TIMES FROM SAC_STUDENT_GRADE SSG WHERE SSG.SSG_EXAM_TIME LIKE '%'||EXAMALL.EXAMTIMES||'%'AND SSG.SSG_EXAM_COURSE_CODE=CS.SCI_COURSE_ID;
/**
报考科次
*/
SELECT COUNT(SSG.SSG_GREAD_ID) AS ACTR_APPLY_TIMES FROM SAC_STUDENT_GRADE SSG WHERE SSG.SSG_EXAM_TIME LIKE '%'||EXAMALL.EXAMTIMES||'%'AND SSG.SSG_EXAM_COURSE_CODE=CS.SCI_COURSE_ID;
/**
考试科次
*/
SELECT COUNT(SSG.SSG_GREAD_ID) AS ACTR_EXAM_COURSE_TIMES FROM SAC_STUDENT_GRADE SSG WHERE SSG.SSG_EXAM_TIME LIKE '%'||EXAMALL.EXAMTIMES||'%'AND SSG.SSG_EXAM_COURSE_CODE=CS.SCI_COURSE_ID AND SSG.SSG_IS_ADD='01';
/**
通过次数
*/
SELECT COUNT(SSG.SSG_GREAD_ID) AS ACTR_PASS_TIMES FROM SAC_STUDENT_GRADE SSG WHERE SSG.SSG_EXAM_TIME LIKE '%'||EXAMALL.EXAMTIMES||'%' AND SSG.SSG_EXAM_COURSE_CODE=CS.SCI_COURSE_ID AND SSG.SSG_IS_PASS='01';
/**
通过率
*/
SELECT ROUND(ACTR_PASS_TIMES/ACTR_EXAM_COURSE_TIMES*100,2) || '%' AS ACTR_PASS_PERCENT FROM DUAL;
/**
参考人数
*/
SELECT COUNT(DISTINCT SSG.SSG_SSI_STUDENT_ID) AS ACTR_JOIN_COUNT FROM SAC_STUDENT_GRADE SSG WHERE SSG.SSG_EXAM_TIME LIKE '%'||EXAMALL.EXAMTIMES||'%'AND SSG.SSG_EXAM_COURSE_CODE=CS.SCI_COURSE_ID AND SSG.SSG_IS_ADD='01';
/**
参考率
*/
SELECT ROUND(ACTR_JOIN_COUNT/(SELECT COUNT(DISTINCT SSG.SSG_SSI_STUDENT_ID) AS TOTAL_COUNT FROM SAC_STUDENT_GRADE SSG WHERE SSG.SSG_EXAM_TIME LIKE '%'||EXAMALL.EXAMTIMES||'%'AND SSG.SSG_EXAM_COURSE_CODE=CS.SCI_COURSE_ID)*100,2) || '%' AS ACTR_JOIN_PERCENT FROM DUAL;
/**
插入数据库
*/
INSERT INTO ALL_COURSE_TYPE_REPORT (ACTR_ID, ACTR_YEAR,ACTR_COURSE_ID, ACTR_COURSE_NAME, ACTR_EXAM_TIMES, ACTR_EXAM_TIME, ACTR_APPLY_TIMES,ACTR_EXAM_COURSE_TIMES,ACTR_PASS_TIMES,ACTR_PASS_PERCENT,ACTR_JOIN_COUNT,ACTR_JOIN_PERCENT) VALUES (SEQ_ALL_COURSETYPE_REPORT.NEXTVAL, ACTR_YEAR,ACTR_COURSE_ID, ACTR_COURSE_NAME, ACTR_EXAM_TIMES, ACTR_EXAM_TIME, ACTR_APPLY_TIMES,ACTR_EXAM_COURSE_TIMES,ACTR_PASS_TIMES,ACTR_PASS_PERCENT,ACTR_JOIN_COUNT,ACTR_JOIN_PERCENT);
END LOOP;
END LOOP;
COMMIT;
END ALL_COURSE_TYPE_REPORT;
分享到:
相关推荐
一级日语语法最新日本原版60题一级语法最新日本原版60题 想過級的。下來作下就知道了。
课程设计实现了简单C语言编译器,包括词法分析、...在遇到困难时,及时向教师或同学请教,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
C语言课程设计是一个旨在帮助学生深入理解和应用...在遇到困难时,及时向教师或同学请教,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
在他们的网站上我看到的网工培训都是课时在半年以上,都要1W多.而且大都是WINDOWS和Linux的,没有UNIX系统.在这里请教一下,UNIX在实际应用中用的多么?是不是大公司的服务器都用UNIX? JAVA和。NET的区别很大,但是语法...
今天工作遇到4.0新增语法 不解 请教 遂知,简单的整理下,需要的朋友可以参考下
cmake-examples-中文 项目在线阅读电子书地址: 本教程全部采用中文,通过一个例子帮助读者由浅入深...这样说私人,INTERFACE,PUBLIC这三个参数在实际中的用途,当时请教了WPS的一位前辈,最终的理解在这篇文章中。他
C++学习文档,学习C++必备,离线查看更方便,真实可用,好记性不如文档来得快,包含常用的语法和结构,有它在手再也不用请教C++的大牛了
2. **Rustlings**: Rustlings是一个非常受欢迎的Rust学习资源,提供了一系列小任务和练习,帮助你逐步掌握Rust语法和概念。3. **GitHub**: GitHub上有许多优质的Rust代码库,你可以浏览一些热门项目,学习优秀的Rust...
今天有朋友向我请教:JavaScript 怎么生成指定范围数值随机数。Math.random() 这个方法相信大家都知道,是用来生成随机数的。不过一般的参考手册时却没有说明如何用这个方法来生成指定范围内的随机数。这次我就来...
" " "不过,在本次试验中遇到了很多的问题,请教老师都是热心回答,让我感觉 " " "很有学习的动力。也因此解决了试验过程中遇到的问题,学到了很多有用的 " " "知识和技能,相信这些知识和技能在我的以后的学习生活...
C语言课程设计是一个旨在帮助学生深入理解和应用...在遇到困难时,及时向教师或同学请教,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
C语言课程设计是一个旨在帮助学生深入理解和应用...在遇到困难时,及时向教师或同学请教,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
C语言课程设计是一个旨在帮助学生深入理解和应用...在遇到困难时,及时向教师或同学请教,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
C语言课程设计是一个旨在帮助学生深入理解和应用...在遇到困难时,及时向教师或同学请教,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
C语言课程设计是一个旨在帮助学生深入理解和应用...在遇到困难时,及时向教师或同学请教,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
C语言课程设计是一个旨在帮助学生深入理解和应用...在遇到困难时,及时向教师或同学请教,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
C语言课程设计是一个旨在帮助学生深入理解和应用...在遇到困难时,及时向教师或同学请教,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
C语言课程设计是一个旨在帮助学生深入理解和应用...在遇到困难时,及时向教师或同学请教,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
C语言课程设计是一个旨在帮助学生深入理解和应用...在遇到困难时,及时向教师或同学请教,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
C语言课程设计是一个旨在帮助学生深入理解和应用...在遇到困难时,及时向教师或同学请教,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。