sql 查询计算的问题

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

【温馨提示:若能帮到您,望给个采纳该答案,谢谢】
1、效果如下
使用case when方式

img

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