Office中国论坛/Access中国论坛

标题: 请教查询工龄1年以上2年以下的员工有多少人?急!(已解决) [打印本页]

作者: zhangheike    时间: 2009-3-4 20:35
标题: 请教查询工龄1年以上2年以下的员工有多少人?急!(已解决)
本帖最后由 zhangheike 于 2009-3-5 09:15 编辑

[attach]36263[/attach]各位大侠,请教一个问题,附件中“查询工龄”表中,根据“入厂日期”已求出员工的工龄,但没法查询出如:6个月到1年以内工龄的员工有多少人,或1年以上到2年以下工龄的员工有多少人,等。
谢谢你们了!
作者: Henry D. Sy    时间: 2009-3-4 20:41
  1. SELECT Count(全体员工.序号) AS 人数
  2. FROM 全体员工
  3. WHERE (((Year(Date())-Year([进厂日期])) Between 1 And 2));
复制代码

作者: zhangheike    时间: 2009-3-4 20:58
版主您好!上面例子中,我求的是例如:   6个月以下有多少人?
                                       6个月以上1年以下有多少人?
                                       1年以上2年以下有多少人?
                                       2年以上5年以下有多少人?
                                       5年以上8年以下有多少人?
                                       8年以上10年以下有多少人?   10年以上有多少人?  谢谢你了,麻烦您再帮我看看啊!在线等!
作者: chaojianan    时间: 2009-3-4 21:01
学习了。
作者: ACMAIN_CHM    时间: 2009-3-4 22:16
建议这种简单问题直接在贴子中说明表结构,记录样本和期望的结果。附件只是辅助作用。

根据 2# 楼的猜一下你的表结构。猜错了你就自己改一下吧。

select Switch(
    DateDiff('m', 进厂日期,Date())<6,'6个月以下',
    DateDiff('m', 进厂日期,Date())<12,'6个月及以上1年以下',
    DateDiff('m', 进厂日期,Date())<24,'1年及以上2年以下',
    DateDiff('m', 进厂日期,Date())<60,'2年及以上5年以下',
    DateDiff('m', 进厂日期,Date())<96,'5年及以上8年以下',
    DateDiff('m', 进厂日期,Date())<120,'8年及以上10年以下',
    DateDiff('m', 进厂日期,Date())>=120,'10年及以上'
    ) as period, count(*)
from 全体员工
group by Switch(
    DateDiff('m', 进厂日期,Date())<6,'6个月以下',
    DateDiff('m', 进厂日期,Date())<12,'6个月及以上1年以下',
    DateDiff('m', 进厂日期,Date())<24,'1年及以上2年以下',
    DateDiff('m', 进厂日期,Date())<60,'2年及以上5年以下',
    DateDiff('m', 进厂日期,Date())<96,'5年及以上8年以下',
    DateDiff('m', 进厂日期,Date())<120,'8年及以上10年以下',
    DateDiff('m', 进厂日期,Date())>=120,'10年及以上'
    )




******************
*  一切皆有可能  *
******************

.
ACMAIN - Access论坛回贴准则(个人).
.

.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/BList/OtherDatabase .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .
作者: sgrshh29    时间: 2009-3-5 07:27
本帖最后由 sgrshh29 于 2009-3-5 07:30 编辑

SELECT Partition(DateDiff('m', 全体员工.进厂日期,Date()),1,60,6) AS 月份区间, Count(全体员工.姓名) AS 数量
FROM (select distinct 全体员工.姓名,全体员工.进厂日期 from 全体员工)
GROUP BY Partition(DateDiff('m', 全体员工.进厂日期,Date()),1,60,6)




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