
有一个SQL表,为项目人员信息,有姓名、任职开始时间、任职结束时间,如何用SQL统计每个月在职总人数。
例如:员工编号姓名任职开始时间任职结束时间1张三2015-1-12016-5-302李四2016-4-12016-12-233王老五2015-8-1至今需要统计近12个月...
例如:
员工编号 姓名 任职开始时间 任职结束时间
1 张三 2015-1-1 2016-5-30
2 李四 2016-4-1 2016-12-23
3 王老五 2015-8-1 至今
需要统计近12个月的总人数
或者不指定统计月份,根据表中所有记录开始和结束时间涉及到的月份来统计。
理论上是行,昨天我也是按照这个方法来弄,但得出的结果不对。
我现在用一个最笨的办法,
1、用每个设定的日期与开始日期和结束日期相比较,如开始日期<=2017-2-1 and 结束日期>=2017-2-1 ,筛选出的记录添加个设定日期的字段。
2、如要近12个月的录,按需要日期再重新筛选。
3、N次的筛选记录 union 合并
4、再用count函数在设定日期的字段按月份进行统计。 展开
员工编号 姓名 任职开始时间 任职结束时间
1 张三 2015-1-1 2016-5-30
2 李四 2016-4-1 2016-12-23
3 王老五 2015-8-1 至今
需要统计近12个月的总人数
或者不指定统计月份,根据表中所有记录开始和结束时间涉及到的月份来统计。
理论上是行,昨天我也是按照这个方法来弄,但得出的结果不对。
我现在用一个最笨的办法,
1、用每个设定的日期与开始日期和结束日期相比较,如开始日期<=2017-2-1 and 结束日期>=2017-2-1 ,筛选出的记录添加个设定日期的字段。
2、如要近12个月的录,按需要日期再重新筛选。
3、N次的筛选记录 union 合并
4、再用count函数在设定日期的字段按月份进行统计。 展开
1个回答
展开全部
1、使用count函数统计人数
2、条件有如下几个:
a.任职开始时间【小于等于】指定月份的第一天,入职日期当天一般都会在公司上班,所以需要小于等于
b.任职结束时间【大于】指定月份的最后一天,离职的那天一般是不上班的,如果离职的那天是上班的,那么,需要将【大于】修改为【大于等于】
就不写语句了,本人懒虫一枚,能坐着就不站着,能躺着就不坐着,能睡着就不醒着
2、条件有如下几个:
a.任职开始时间【小于等于】指定月份的第一天,入职日期当天一般都会在公司上班,所以需要小于等于
b.任职结束时间【大于】指定月份的最后一天,离职的那天一般是不上班的,如果离职的那天是上班的,那么,需要将【大于】修改为【大于等于】
就不写语句了,本人懒虫一枚,能坐着就不站着,能躺着就不坐着,能睡着就不醒着

2025-03-05 广告
华天软件PDM近30年实施经验,服务客户数千家,功能完善,提高设计复用率,降低研发成本40%,实现跨部门信息共享+无纸化研发+缩短产品研发周期+降低成本,为企业构建数字化智能制造全面应用,打好坚实基础,加速企业数字化转型,更多资料详情咨询4...
点击进入详情页
本回答由华天软件提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询