数据库的题目(谁帮我解答下)谢谢!!

来源:百度知道 编辑:UC知道 时间:2024/05/03 07:27:17
用SQL完成下列操作:(越详细越好啊!!)( 刚开始我把这问题分类在“教育/学业/考试->学习帮助”里却没人回答,悬赏分是100,如果哪位把这个回答了我把那100分也送给你)
第一题:
现有关系数据库SPJ,包括S(SNO,SNAME,CITY)、P(PNO,PNAME,COLOR,WEIGHT,PRICE)、J(JNO,JNAME,CITY)、SPJ(SNO,PNO,JNO,QTY),其中S、P、J、SPJ分别反映供应商、零件、工程项目及它们的供应情况(PRICE表示该零件的单价,QTY表示使用的数量)。( 32 分)
用SQL语言完成下列操作。
(1)用一条SQL语句求每个工程用到的每种零件的数量清单。(3分)
(2)请列出所有项目中北京供应商提供的所有零件的名称、颜色及重量,要求重复的只出现一次。(4分)
(3)求目前没有参加任何项目建设的供应商名单。(4分)
(4)查询所交付使用的零件的总价值超过100万的供应商名称,并按其供应额由大到小排序。(5分)
(5)查询每个城市的供应商供应所有项目的零件的总数量及总价值。(5分)
(6)查询各个城市中的所项目的数量清单表。(3分)
(7)找出每种零件在所有项目中的使用的总数量及重量,并显示的结果按零件号升序排列。(4分)
(8)查询每个供应商名及其所交付使用的零件的总数量,及总价值。(4分)
(9)查询每个城市的供应商供应所有项目的零件的总数量及总价值。(5分)

1.select b.JNAME,c.PNAME,a.QTY from SPJ as a
inner join J as b on(a.JNO=b.JNO)
inner join P as c on(a.PNO=c.PNO)
2.select distinct b.SNAME,c.PNAME,c.COLOR,c.WEIGHT from SPJ as a
inner join S as b on(a.SNO=b.SNO)
inner join P as c on(a.PNO=c.PNO)
where b.SNAME='北京'
3.select * from S where SNO not in (select SNO from SPJ)
4.select b.SNAME,sum(c.PRICE*a.QTY) as je from SPJ as a
inner join S as b on(a.SNO=b.SNO)
inner join P as c on(a.PNO=c.PNO)
group by b.SNAME
having sum(c.PRICE*a.QTY)>=1000000
order by sum(c.PRICE*a.QTY)
5.select b.CITY,sum(a.QTY) as sl,sum(c.PRICE*a.QTY) as je
from SPJ as a inner join S as b on(a.SNO=b.SNO)
inner join P as c on(a.PNO=c.PNO)
group by b.CITY
6.select * from SPJ as a
inner join S as b on(a.SNO=b.SNO)
order by b.CITY
7.select b.PNO,b.PNAME,sum(b.WEIGHT) as zl,sum(a.QTY) as sl from SPJ as a
inner j