当前位置: 代码迷 >> Oracle认证考试 >> 请大家伙儿帮忙做两道题(ORACLE)
  详细解决方案

请大家伙儿帮忙做两道题(ORACLE)

热度:813   发布时间:2013-02-26 00:00:00.0
请大家帮忙做两道题(ORACLE)
1.利用DDL语句创建表employee,共有4列:eid(占3个字符,建立一个延迟的主键约束),ename(占8个字符,非空),deptid(占3个字符),salary(整型,大于0),现有索引表空间indx,数据表空间tbs。根据以上要求完成定义和约束,并合理安排表空间。

2.完成以下SQL语句,已知CAP数据库中表和列的定义如下:
CUSTOMERS: 存放顾客信息的表
  cid: 顾客编号
  cname: 顾客姓名
  city: 顾客所在城市
  discnt: 每个顾客可能会有的折扣

PRODUCTS: 存放商品信息的表
  pid: 商品编号
  pname: 商品名称
  city: 商品库存所在的城市
  quantity: 目前可销售的商品库存数量
  price: 每单位商品的批发价

AGENTS: 存放代理商信息的表
  aid: 代理商编号
  aname: 代理商的名称
  city: 代理商所在的城市
  percent: 每笔交易代理所能获得佣金百分比

ORDERS: 存放订单信息的表
  oid: 订单编号
  month: 订单月份
  cid: 购买商品的顾客编号
  aid: 代理商编号
  pid: 所订购的商品编号
  qty: 订购的商品数量
  dollars: 商品的总价

(1)找出所有顾客、代理商和商品都在同一个城市的三元组(cid,aid,pid)
(2)找出折扣率最大和最小的顾客的cid值
(3)找出通过代理商a03而不通过a06订购的商品的pid值
(4)取出名字是以字母N开头的代理商的aid和aname值,并且这些代理商没有销售过任何在城市Newark生产的产品
(5)求出所有商品的订购情况(pname,qty)
(6)完成插入操作:顾客Allied通过代理商Smith购买了名称为"brush"的产品,订单号为1011,商品数量为1000
(7)如果顾客的折扣率大于10,将其折扣在原有基础上再增加5,否则增加3
(8)找出哪些顾客(名字)同时订购了产品p01和p02

先谢谢大家了。


------最佳解决方案--------------------------------------------------------
2.1

select a.cid,b.pid,c.aid
from CUSTOMERS a,PRODUCTS b,AGENTS c
where a.city=b.city
and b.city=c.city

------其他解决方案--------------------------------------------------------
题目长了点,还是比较简单的。
就是不知道我理解的对不对
我没理论知识的
------其他解决方案--------------------------------------------------------
这么长的题目,慢慢看
------其他解决方案--------------------------------------------------------
2.2

select  cid
from customers a,
(
select min( discnt) min_dis,max(discnt) max_cnt
from customers

) b
where a.discnt=b.min_dis or a.discnt=b.max_dis

------其他解决方案--------------------------------------------------------
2.3

select a.pid
(
select pid,max(decode(aid,'A03',aid,null)) a03,max(decode(aid,'A06',aid,null)) a06
from ORDERS
group by pid
) a
where a.a03='A03' and a.a06 is null

------其他解决方案--------------------------------------------------------
2.4

select 
from PRODUCTS b,AGENTS c,orders, d
where d.pid=b.pid and d.aid =c.aid
and c.aname like 'N%'
and b.city<>'Newark'


------其他解决方案--------------------------------------------------------
2.4

select c.aid,c.aname
from PRODUCTS b,AGENTS c,orders, d
where d.pid=b.pid and d.aid =c.aid
and c.aname like 'N%'
and b.city<>'Newark'
group c.aid,c.aname



------其他解决方案--------------------------------------------------------
2.5

select b.pname,sum(d.qty) qty
from PRODUCTS b,orders, d
where d.pid=b.pid 

group b.pname

------其他解决方案--------------------------------------------------------
  相关解决方案