数据库高手,帮我改正几条数据库SQL查询语句

[复制链接]
查看11 | 回复3 | 2011-4-17 11:06:12 | 显示全部楼层 |阅读模式
表S (SNO 供应商代码,…)
表P (PNO 零件代码,…)
表J (JNO 工程代号,…)
表SPJ(SNO ,pNO ,JNO,QTY 数量)
查询要求∶找出使用供应商S2供应的全部零件的工程号
我是这样想的:
先算出各工程使用了S2 供应的零件种类的数量
select JNO ,count (distinct PNO )
from SPJ
where SNO =‘S2’
group by JNO
然后算出S2供应的零件的种类的数量
select count (distinct PNO )
from SPJ
where SNO =‘S2’
然后把这两个查询得到的数据比较,选出数量相等的,这样就选出使用了S2供应的全部零件的工程号,可是我不知道怎么合起来,也不知道我上面写的对不对
谁能帮帮我,谢谢啦!

回复

使用道具 举报

千问 | 2011-4-17 11:06:12 | 显示全部楼层
你这个表结构到底是什么样的啊?p表里面有没有sno字段?如果没有就只是个单表查询select jpofrom spjwhere pno>=all(select distinct pnofrom spjwhere sno='s2')
回复

使用道具 举报

千问 | 2011-4-17 11:06:12 | 显示全部楼层
很简单啊:selectSJP.JNOfromSJPinner joinSONSJP.SNO=S.SNOwhereSNO =‘S2’
回复

使用道具 举报

千问 | 2011-4-17 11:06:12 | 显示全部楼层
select JNOfrom SPJwhere sno='s2'group by JNOhaving count(distinct PNO)=(select count(distinct pno)
from spj
where
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行