SQL SERVER根据出生年月、性别、身份计算年龄、内退时间

本文展示了如何使用SQL查询来获取员工的基本信息、年龄、工作年限等数据,并通过CASE WHEN语句进行条件判断计算不同类型的员工工作年限。

SELECT     dbo.ygb.ygbm, dbo.ygb.ygxm, dbo.ygb.ygxb, dbo.ygb.ygmz, dbo.ygb.sfid, dbo.ygb.zzmm, dbo.ygb.ygsr, YEAR(GETDATE()) - YEAR(dbo.ygb.ygsr) AS ygnl,
                      dbo.ygb.gzsj, CASE WHEN ygxb = '1' THEN DATEDIFF(day, GETDATE(), DATEADD(year, 50, ygsr)) WHEN ygxb = '0' AND yglb = '干部' THEN DATEDIFF(day, GETDATE(),
                       DATEADD(year, 45, ygsr)) WHEN ygxb = '0' AND yglb = '工人' THEN DATEDIFF(day, GETDATE(), DATEADD(year, 40, ygsr)) END AS ntts, dbo.ygb.byxx, dbo.ygb.ygxl,
                      dbo.xlb.xlmc, dbo.ygb.ygzc, dbo.zcb.zcmc, dbo.ygb.ygjn, dbo.jnb.jnmc, dbo.ygb.ygzw, dbo.zwb.zwmc, dbo.ygb.lxdh, dbo.ygb.gzgw, dbo.ygb.yglb, dbo.ygb.memo,
                      dbo.vw_ygqkb.qkmc, dbo.vw_ygqkb.tqts, dbo.vw_ygqkb.shjg
FROM         dbo.xlb INNER JOIN
                      dbo.ygb ON dbo.xlb.xlbm = dbo.ygb.ygxl INNER JOIN
                      dbo.zcb ON dbo.ygb.ygzc = dbo.zcb.zcbm INNER JOIN
                      dbo.jnb ON dbo.ygb.ygjn = dbo.jnb.jnbm INNER JOIN
                      dbo.zwb ON dbo.ygb.ygzw = dbo.zwb.zwbm LEFT OUTER JOIN
                      dbo.vw_ygqkb ON dbo.ygb.ygbm = dbo.vw_ygqkb.ygbm

转载于:https://www.cnblogs.com/xusy/p/4834651.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值