根据入职日期及学历情况自动计算转正日期。学历是本科及以下的,转正时间为6个月,学历是本科以上硕士以下的,转正时间为4个月,学历是硕士及以上的,转正时间为2个月。
表AA 入职日期是 A1 学历字段是A2(硕士,本科 ,大专,中专 高中,初中一下,null) 员工编号A3 员工姓名 A4
显示如下
员工编号、员工姓名、入职日期、学历、试用期限、转正日期

sql 查询计算的问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注
【温馨提示:若能帮到您,望给个采纳该答案,谢谢】
1、效果如下
使用case when方式2、语句如下
/* create table AA( A3 int, --员工编号 A1 datetime, --入职日期 A2 varchar(50), --学历字段(硕士、本科、大专、中专 高中、初中以下、null A4 varchar(50) --员工姓名 ) insert into AA(A3,A1,A2,A4) values(1,'2022-03-01','大专','张三') insert into AA(A3,A1,A2,A4) values(2,'2022-02-18','硕士','李四') insert into AA(A3,A1,A2,A4) values(3,'2022-03-10','本科','王五') insert into AA(A3,A1,A2,A4) values(4,'2022-01-23','中专 高中','六六') insert into AA(A3,A1,A2,A4) values(5,'2022-03-20','初中以下','七七') insert into AA(A3,A1,A2,A4) values(6,'2022-03-20',NULL,'九九') */ /* 学历是本科及以下的,转正时间为6个月, 学历是本科以上硕士以下的,转正时间为4个月, 学历是硕士及以上的,转正时间为2个月 */ --使用case when方式,以及学历使用编码代替 select A3 as '员工编号', A4 as '员工姓名', A2 as '学历', A1 as '入职时间', ( case when A2='大专' or (A2='中专 高中' or A2='初中以下' or A2 is null) then '6个月' when A2='本科' then '4个月' when A2='硕士' then '2个月' end ) as '试用期限', ( case when A2='大专' or (A2='中专 高中' or A2='初中以下' or A2 is null) then dateadd(month,6,A1) when A2='本科' then dateadd(month,4,A1) when A2='硕士' then dateadd(month,2,A1) end ) as '转正日期' from AA
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用