当前位置: 代码迷 >> Oracle认证考试 >> oracle入门考试。求帮忙,该如何处理
  详细解决方案

oracle入门考试。求帮忙,该如何处理

热度:95   发布时间:2016-04-24 03:46:56.0
oracle入门考试。。。求帮忙
A表
员工编号   员工所属的部门的编号   姓名 性别 电话 地址
----------------------------------------------------------------------
1   1   张三   男   13611111111   A   
2   3   李四   女   B   
3   1   王老五   男   13199999999   C   
4   2   阿男   女   13900000000   D   
5   1   KERRY   男   E   
6   2   TERRY   男   13184848484   F   
7   3   SUM   男   3397123   G   
8   2   阿灿   女   12632342340   H   

B表
产品的编号   部门的编号   产品名字   产品的负责人的编号 
-----------------------------------------------------------------------------  
1   1   《计量支付》   1   
2   3   《TUR通用报表》   2   
3   1   《wcost工程预算》   5   
4   2   《设备管理》   6   
5   1   《合同管理》   3
  
C表
部门的编号  部门名字  部门的负责人   
---------------------------------------------------
1   IPMS   3   
2   IEMS   4   
3   IBASE   2
<1>查询IPMS部门的全部人员姓名和地址。
<2>查询《计量支付》产品的负责人姓名和该产品所属部门以及部门负责人姓名,电话。
<3>查询A表中所有人员,如果是男则取他的地址,如果是女则取她的号码。
<4>列出A表中所有热源在产品中的任职情况,结果如下:
name    ?phonecode    ?project_name
张三    ?  ?1361111111    ?《计量支付》
李四    ?      ?    ?    ?    ?    ?    ?《TUR通用报表》
王老五    ?13199999999    ?《合同管理》
阿男    ?    ?13900000000   
KERRY    ?    ?    ?    ?    ?    ?    ?《wcost工程预算》
TERRY    ?13184848484    ?《设备管理》
SUM    ?    ?3397123
阿灿    ?    ?12632342340
<5>创建一个视图,以方便查看表中所有人员的姓名以及他所属的部门名称和该部门的负责人姓名,电话,如果他是产品负责人,则把他所负责的产品名称列出来。
------解决思路----------------------
第一个

select name,address from a where deptno in (select deptno from c where deptname='IPMS');

------解决思路----------------------
第二个

select a1.name,c.deptname,a2.name,a2.phone from a a1,a a2,b,c where
     (b.产品负责人编号=a1.员工编号 and b.deptno=c.deptno and c.部门负责人=a2.员工编号
     and b.product='《计量支付》');

------解决思路----------------------
第三个(游标)

declare
   cursor cursor_r is select * from a;
begin
   for cur in cursor_r loop
     if cur.sex='男' then
      dbms_output.put_line('姓名:'
------解决思路----------------------
cur.name
------解决思路----------------------
' 地址:'
------解决思路----------------------
cur.address);
     else
      dbms_output.put_line('姓名:'
------解决思路----------------------
cur.name
------解决思路----------------------
' 电话:'
------解决思路----------------------
cur.phone);
     end if;
   end loop;
end;

------解决思路----------------------
--第一题
SELECT   a.deptno, a.name, a.address
  FROM   tblc c, tbla a
 WHERE   c.deptno = a.deptno AND c.deptname = 'IPMS';



--第二题
SELECT   a.name 产品负责人姓名,
         e.name 部门负责人姓名,
         e.phone 部门负责人电话,
         b.deptno 产品部门编号,
         c.deptname 产品部门
  FROM   tbla a,
         tblb b,
         tblc c,
         tbla e
 WHERE       a.empno = b.prodld
         AND b.deptno = c.deptno
         AND c.deptld = e.empno
         AND b.prodname = '《计量支付》';
         
--第三题  
SELECT   empno,
         name,
         deptno,
         NVL (CASE gender WHEN '男' THEN address ELSE phone END, '无') info
  FROM   tbla;
  


--第四题
SELECT   a.name,
         a.phone,
         b.prodname
  FROM   tbla a, tblb b
 WHERE   a.empno = b.prodld;
  相关解决方案