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;