Office中国论坛/Access中国论坛

标题: [求助]同时包含多个数的查询 [打印本页]

作者: fdcs    时间: 2007-4-29 01:14
标题: [求助]同时包含多个数的查询
满足同一列同时包含多个数的查询要怎么写?例如:

姓名 部门 年龄

A      01       20

A      01       30

B      02       20

C      02       20

这样简单一个表,要查出同时存在20岁和30岁人员的部门有几个,要怎么写?关键是同时包含。
作者: fdcs    时间: 2007-4-29 01:16
发的贴子下半部分没了??补下:要求出同时存在20岁和30岁人员的部门有几个,要怎么写查询?谢谢了。
作者: andymark    时间: 2007-4-29 01:34
列举部门还是统计部门个数
作者: fdcs    时间: 2007-4-29 01:37
我就是列举部门出不来,如果列举部门了统计个数就容易了。就写下列举部门的查询吧
作者: fdcs    时间: 2007-4-29 02:50
类似的查询经常要用到的,应该有人会吧,我用数据库不久做不来,查了资料也查不到,可以帮下我吗
作者: 一点通    时间: 2007-4-29 03:46
最好的办法还是你做一个例子,让别人帮你完成,不然纸上谈兵是没有用的
作者: fdcs    时间: 2007-4-29 04:16
就上面这个简单的例子可以吗?我的要求是写出sql语句。select table.部门 from table......主要是要同时包含,不然用where 年龄=20 or 30 的话大家都会。
作者: eyewitnes    时间: 2007-4-29 20:21
以下是引用fdcs在2007-4-28 17:14:00的发言:


满足同一列同时包含多个数的查询要怎么写?例如:

姓名 部门 年龄

A      01       20

A      01       30

B      02       20

C      02       20

这样简单一个表,要查出同时存在20岁和30岁人员的部门有几个,要怎么写?关键是同时包含。



同时存在吗?

select 部门 from 表 where 年龄 between 20 and 30 group by 部门

然后进入设计视图,将年龄项目的分组改为条件
作者: djt    时间: 2007-4-30 17:00
select 部门,min(年龄)&'&'&max(年龄)
from 部门
where 年龄 in (20,30)
Group by 部门
having min(年龄)&'&'&max(年龄)='20&30'
同时包含20岁和30岁的部门,可以理解为最小年龄为20,最大年龄为30,分组查询

[此贴子已经被作者于2007-4-30 9:00:38编辑过]


作者: djt    时间: 2007-4-30 17:13
第2种方法,自联表,可能理解起来有点困难.
select b1.部门
from  部门 as b1 inner join 部门 as b2
on b1.部门=b2.部门
where b1.年龄=20 and b2.年龄=30
group by b1.部门
作者: andymark    时间: 2007-4-30 17:50
SELECT a.部门
FROM [SELECT DISTINCT 表1.部门, 表1.年龄 FROM 表1 WHERE 表1.年龄 in (20,30)]. AS a
GROUP BY a.部门
HAVING count(a.部门)>1;




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3