|
? 说明:该程序中将字段内容垂直排列。V_count变量记录循环次数,即部门个数。? 【训练4】? 已知每个部门有一个经理,编写程序,统计输出部门名称、部门总人数、总工资和部门经理。? 输入并执行如下程序:?
Sql代码?
- SET?SERVEROUTPUT?ON? ??
- DECLARE??
- ?v_deptno?number(8); ??
- ?v_count?number(3); ??
- ?v_sumsal?number(6); ??
- ?v_dname??varchar2(15); ??
- v_manager??varchar2(15); ??
- ?CURSOR?list_cursor?IS??
- ???SELECT?deptno,count(*),sum(sal)?FROM?emp?group?by?deptno; ??
- BEGIN??
- ??OPEN?list_cursor;? ??
- ??DBMS_OUTPUT.PUT_LINE(‘-----------?部?门?统?计?表?-----------‘); ??
- DBMS_OUTPUT.PUT_LINE(‘部门名称???总人数??总工资???部门经理‘); ??
- ??FETCH?list_cursor?INTO?v_deptno,v_count,v_sumsal;? ??
- ??WHILE?list_cursor%found?LOOP?? ??
- ?SELECT?dname?INTO?v_dname?FROM?dept ??
- ????WHERE?deptno=v_deptno; ??
- ????SELECT?ename?INTO?v_manager?FROM?emp? ??
- ????WHERE?deptno=v_deptno?and?job=‘MANAGER‘; ??
- DBMS_OUTPUT.PUT_LINE(rpad(v_dname,13)||rpad(to_char(v_count),8) ??
- ??????||rpad(to_char(v_sumsal),9)||v_manager); ??
- ????FETCH?list_cursor?INTO?v_deptno,v_sumsal;? ??
- ????END?LOOP; ??
- ????????DBMS_OUTPUT.PUT_LINE(‘--------------------------------------‘); ??
- ????????CLOSE?list_cursor; ??
- ????????END;??
输出结果为:?
Sql代码?
- --------------------?部?门?统?计?表?-----------------???
- ????????部门名称?????总人数??总工资?????部门经理 ??
- ????????ACCOUNTING????3??????8750???????CLARK ??
- ????????RESEARCH??????5?????10875???????JONES ??
- ????????SALES?????????????6??????9400???????BLAKE ??
- ????????-------------------------------------------------------------???
- ????????PL/SQL?过程已成功完成。???
(编辑:PHP编程网 - 湛江站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|