今天在写一个人事系统时,碰到过这样的问题,按出生日期分类统计每个年代的员工人数,经过一番思考,今天总算把语句写出来了,特发布出来,供大家参考,如果有更好的方法,都可以提出来。
  有一个人员信息表HREmployee,其中有两个字段:strWorkNo为员工编号,dtBirthDay为出生日期,现要按出生日期分类统计出每个年代的员工人数,即按(1940-1-1~1949-12-31,1950-1-1~1959-12-31,……)来分类统计,我写出的语句如下:

按出生日期分类统计每个年代的员工人数SELECT COUNT(strWorkNo) CountPer, YearFirst FROM (
按出生日期分类统计每个年代的员工人数
SELECT strWorkNo,'YearFirst' = CASE WHEN dtBirthday Between CAST((YEAR(dtBirthday)/10as varchar(4))+'0-1-1'
按出生日期分类统计每个年代的员工人数    
and CAST((YEAR(dtBirthday)/10as varchar(4))+'9-12-31' THEN CAST((YEAR(dtBirthday)/10as varchar(4))+'0'
按出生日期分类统计每个年代的员工人数    
ELSE '0' END
按出生日期分类统计每个年代的员工人数
from HREmployee 
按出生日期分类统计每个年代的员工人数) a
按出生日期分类统计每个年代的员工人数
GROUP BY YearFirst


在Windows 2003 Server+SP1,SQL Server 2005中调试通过。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-09
  • 2022-12-23
  • 2022-01-26
猜你喜欢
  • 2021-10-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-27
  • 2022-12-23
  • 2021-05-14
相关资源
相似解决方案