一个SQL查询的问题(在线等)

nickcheng 2003-05-12 01:05:08
求至少用了供应商S1所供应的全部零件的工程号JNO

SNO:供应商代码
PNO:零件代码
JNO:工程项目代码

spj表
-------------
SNO PNO JNO
s1 p1 j1
s1 p1 j3
s1 p1 j4
s1 p2 j2
s2 p3 j1
s2 p3 j2
s2 p3 j4
s2 p3 j5
s2 p5 j1
s2 p5 j2
s3 p1 j1
s3 p3 j1
s4 p5 j1
s4 p6 j3
s4 p6 j4
s5 p2 j4
s5 p3 j1
s5 p6 j2
s5 p6 j4
-------------
...全文
52 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
nickcheng 2003-05-14
哦,忘了说了~~~
crycat(crycat)当然也是正确的~~~

呵呵~~不好意思~~~
回复
crycat 2003-05-14
hehe.我写的不对吗?
回复
erigido 2003-05-13
我想这个表应该包括了的.
回复
crycat 2003-05-13
首先确定此表是否包含了s1全部的配件,若是则
select jno from spj where sno='s1' group by jno having count(pno)=(select count(distinct pno) from spj where sno='s1')
大概是这个样子,写的不好。见笑了
回复
nickcheng 2003-05-13
to iainet()
确实是那上面的题,想了好久没有头绪,按照表,人工找了一下,发现应该是没有解的
其他的表没用的,这道题并没有供应商所供应的全部零件的表

供应商S1提供的零件就有P1,P2

大力的测试似乎也显示出没有解,不过他的答案我有点儿看不明白.group by后面加两个列名是什么意思啊??
回复
wgy2008 2003-05-13
select distinct jno
from spj
where sno = 's1'
回复
pengdali 2003-05-13
select jno from spj where pno in (select pno from spj where sno='s1') group by pno,jno having sum(1)=(select count(distinct pno) from spj where sno='s1')



--测试:
create table #spj(SNO varchar(10),PNO varchar(10),JNO varchar(10))
insert #spj values('s1','p1','j1')
insert #spj values('s1','p1','j3')
insert #spj values('s1','p1','j4')
insert #spj values('s1','p2','j2')
insert #spj values('s2','p3','j1')
insert #spj values('s2','p3','j2')
insert #spj values('s2','p3','j4')
insert #spj values('s2','p3','j5')
insert #spj values('s2','p5','j1')
insert #spj values('s2','p5','j2')
insert #spj values('s3','p1','j1')
insert #spj values('s3','p3','j1')
insert #spj values('s4','p5','j1')
insert #spj values('s4','p6','j3')
insert #spj values('s4','p6','j4')
insert #spj values('s5','p2','j4')
insert #spj values('s5','p3','j1')
insert #spj values('s5','p6','j2')
insert #spj values('s5','p6','j4')


select jno from #spj where pno in (select pno from #spj where sno='s1') group by pno,jno having sum(1)=(select count(distinct pno) from #spj where sno='s1')


go
drop table #spj

--sum(1)等于:count(*) 求记录数
回复
wuqiuzhi 2003-05-13
我想应该有一个供应商所供应的全部零件的表吧
回复
iainet 2003-05-13
你把其它的表也帖上来吧!
回复
iainet 2003-05-13
这个题好像<<数据系统概论>>上的哟:)
好像还有其它的表,
那样的话利用其它表就好做了!
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2003-05-12 01:05
社区公告
暂无公告