导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

关于查找的问题

kinvb 2003-12-23 03:36:59
在一个数据表A
模号 工时
6364 0.050
6565 0.045

另一个表B
姓名 模号 良品数
小飞 6364 1000
小胡 6565 900
小黑 6364 900
. . .
. . .
. . .
请问表B的每个人都做过存在在表A的模号的产品有那些
...全文
57 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
devilwind 2003-12-23
select distinct 姓名 into #tmp from B

select count(*) from #tmp

select c.模号 from (select a.模号,count(a.模号) as b from B right join A on B.模号=A.模号 group by a.模号) c
where c.b=(select count(*) from #tmp)
回复
xzx760815 2003-12-23
首先求表2中人數用
select count(*) from (select 姓名 from 表2 group by 姓名) a
然后 表1與表2關聯并按模號分組,找出關聯后次數等于人數的模塊。
即﹕
select a.模號 from 表1 a inner join 表2 b on a.模號=b.模號 group by a.模號
having count(*)=(select count(*) from (select 姓名 from 表2 group by 姓名) a )


回复
victorycyz 2003-12-23
select 姓名
from
( select distinct b.姓名,b.模号
from
( select distinct 姓名
from tableB
) b left join tableA a on a.模号=b.模号
) c
group by 姓名
having count(*)=1
回复
Rotaxe 2003-12-23
select 模号 from a where not exists( select * from b b1 where a.模号=b.模号 and not exists( select * from b2 where b2.姓名=b1姓名 and a.模号=b2.模号))
回复
kinvb 2003-12-23
在一个数据表A
模号 工时
|--6364 0.050
| 6565 0.045
|-----------------------------------我的意思是查找出像表A对应表B的有所有模号
| 并且表A的模号都存在在表B中的每个人做的良品数
| 至少有一次的模号.
| 另一个表B
| 姓名 模号 良品数
|- 小飞 6364 1000
| 小胡 6565 900
|- 小黑 6364 900
. . .
. . .
. . .
回复
gmlxf 2003-12-23
select * from B as a
where
(select count(*) from A group by 模号)
=
(select count(*) from (select distinct 模号 from B where 姓名=a.姓名) b)
回复
j9988 2003-12-23
select 模号
from 表A A
where not exists(select 1 from
(select * from (
(select distinct 姓名 from 表B) B,(select 模号 from 表A ) C
) D
left join 表B E
on D.姓名=E.姓名 and D.模号=E.模号
where D.模号=A.模号 and E.模号 is not null)
回复
DigJim 2003-12-23
不知道怎麽問的?
看不懂
回复
kinvb 2003-12-23
我的意思是:查询表A里有那些模号是表B的每个人都有相关记录的
回复
tomhuang 2003-12-23
不是很清楚你的意思,能再说清楚些吗?
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告