--in和exists子查询的效率是很低的,SQL Server可以使用left outer join来实现同样的功能。insert into 个人养老保险欠缴表
select a.系统编号 as 人员系统编号,_
FORMAT(a.养老保险月缴额/a.缴费基数,'0.00') AS 缴费比例,
a.缴费基数,
a.养老保险月缴额,
2002 AS 缴纳起始年,
12 AS 缴纳起始月,
2002 AS 缴纳终止年,
12 AS 缴纳终止月,
1 AS 欠缴月份数,
'zzq' AS 数据处理操作员,
FALSE AS 已经补缴
from 缴费人员信息 a
left outer join (select 人员系统编号
from 个人养老保险缴纳表
where ((缴纳起始年 < 2002) or (缴纳起始年 = 2002 and 缴纳起始月 <= 12))
and ((缴纳终止年 > 2002) or (缴纳终止年 = 2002 and 缴纳终止月 >= 12))
) b on b.人员系统编号=a.系统编号
where a.是否代缴养老保险=true
and b.人员系统编号 is null
select a.系统编号 as 人员系统编号,_
FORMAT(a.养老保险月缴额/a.缴费基数,'0.00') AS 缴费比例,
a.缴费基数,
a.养老保险月缴额,
2002 AS 缴纳起始年,
12 AS 缴纳起始月,
2002 AS 缴纳终止年,
12 AS 缴纳终止月,
1 AS 欠缴月份数,
'zzq' AS 数据处理操作员,
FALSE AS 已经补缴
from 缴费人员信息 a
left outer join (select 人员系统编号
from 个人养老保险缴纳表
where ((缴纳起始年 < 2002) or (缴纳起始年 = 2002 and 缴纳起始月 <= 12))
and ((缴纳终止年 > 2002) or (缴纳终止年 = 2002 and 缴纳终止月 >= 12))
) b on b.人员系统编号=a.系统编号
where a.是否代缴养老保险=true
and b.人员系统编号 is null
1%
最后一句,是什么意思
and b.人员系统编号 is null