1
This commit is contained in:
45
12.格致/退休日期查询报表.sql
Normal file
45
12.格致/退休日期查询报表.sql
Normal file
@@ -0,0 +1,45 @@
|
||||
SELECT
|
||||
ROW_NUMBER() over (order by tt.法定退休日期) AS '序号'
|
||||
,tt.工号,tt.姓名,tt.身份证,tt.入职日期,tt.部门,tt.岗位,tt.性别,tt.出生日期,tt.法定退休年龄,tt.法定退休日期
|
||||
,CASE WHEN TT.法定退休日期 = tt.当前日期 THEN 1 ELSE 0 END '是否今天'
|
||||
FROM (
|
||||
SELECT
|
||||
t0.FNUMBER AS '工号'
|
||||
,t0_l.FNAME AS '姓名'
|
||||
,t0.FIDTYPENUMBER AS '身份证'
|
||||
,t0.FJOINEDDATE AS '入职日期'
|
||||
,t3_l.FNAME AS '部门'
|
||||
,t2_l.FNAME AS '岗位'
|
||||
,t1.性别
|
||||
,t0.FBIRTHDATE AS '出生日期'
|
||||
,t1.法定退休年龄
|
||||
,DATEADD(YEAR ,t1.法定退休年龄 ,t0.FBIRTHDATE) AS '法定退休日期'
|
||||
,DATEDIFF(MONTH ,t0.FBIRTHDATE ,(CASE tt.跨度类型 WHEN 'M' THEN tt.查询日期 ELSE DATEADD(MONTH,0,DATEADD(YEAR,DATEDIFF(YEAR, 0, tt.查询日期),0)) END)) AS '截止年龄合计月数'
|
||||
,t1.法定退休年龄 * 12 AS '退休年龄合计月数'
|
||||
,tt.查询日期
|
||||
,tt.当前日期
|
||||
,tt.跨度类型
|
||||
,tt.时间跨度
|
||||
,(tt.时间跨度 * CASE tt.跨度类型 WHEN 'M' THEN 1 ELSE 12 END) '跨度区间结束'
|
||||
FROM T_BD_StaffData t0
|
||||
INNER JOIN T_BD_StaffData_L t0_l on t0.FID = t0_l.FID
|
||||
INNER JOIN (
|
||||
SELECT t1e.FENTRYID AS SEXID,t1e_l.FDATAVALUE AS '性别'
|
||||
,(CASE t1e_l.FDATAVALUE WHEN '女' THEN 55 ELSE 60 END) '法定退休年龄'
|
||||
FROM T_BAS_ASSISTANTDATA_L t1_l
|
||||
INNER JOIN T_BAS_ASSISTANTDATAENTRY t1e on t1_l.FID = t1e.FID AND t1_l.FNAME = '性别' AND t1_l.FLOCALEID = 2052
|
||||
INNER JOIN T_BAS_ASSISTANTDATAENTRY_L t1e_l on t1e.FENTRYID = t1e_l.FENTRYID AND t1e_l.FLOCALEID = 2052
|
||||
) t1 on t0.FSEX = t1.SEXID
|
||||
LEFT JOIN T_ORG_POST_L t2_l on t2_l.FPOSTID = t0.FPOSTID
|
||||
LEFT JOIN T_BD_DEPARTMENT_L t3_l on t3_l.FDEPTID = t0.FDEPARTMENTID
|
||||
,(SELECT '2053-10-20' AS '查询日期'
|
||||
,CONVERT(varchar,GETDATE(),23) AS '当前日期'
|
||||
,'M' AS '跨度类型',1 '时间跨度'
|
||||
) tt
|
||||
WHERE t0.FTERMINATIONDATE IS NULL
|
||||
) tt
|
||||
WHERE 1=1
|
||||
AND (tt.退休年龄合计月数 - tt.截止年龄合计月数) BETWEEN 0 AND tt.跨度区间结束
|
||||
AND DATEDIFF(DAY,tt.当前日期,tt.法定退休日期) >= 0
|
||||
|
||||
|
||||
46
12.格致/退休日期查询报表v2.sql
Normal file
46
12.格致/退休日期查询报表v2.sql
Normal file
@@ -0,0 +1,46 @@
|
||||
SELECT
|
||||
ROW_NUMBER() over (order by tt.法定退休日期) AS '序号'
|
||||
,tt.工号,tt.姓名,tt.身份证,tt.入职日期,tt.部门,tt.岗位,tt.性别,tt.出生日期,tt.法定退休年龄,tt.法定退休日期
|
||||
,CASE WHEN TT.法定退休日期 = tt.当前日期 THEN 1 ELSE 0 END '是否今天'
|
||||
FROM (
|
||||
SELECT
|
||||
t0.FNUMBER AS '工号'
|
||||
,t0_l.FNAME AS '姓名'
|
||||
,t0.FIDTYPENUMBER AS '身份证'
|
||||
,t0.FJOINEDDATE AS '入职日期'
|
||||
,t3_l.FNAME AS '部门'
|
||||
,t2_l.FNAME AS '岗位'
|
||||
,t1.性别
|
||||
,t0.FBIRTHDATE AS '出生日期'
|
||||
,t1.法定退休年龄
|
||||
,DATEADD(YEAR ,t1.法定退休年龄 ,t0.FBIRTHDATE) AS '法定退休日期'
|
||||
,DATEDIFF(MONTH ,t0.FBIRTHDATE ,tt.查询日期) AS '截止年龄合计月数'
|
||||
,t1.法定退休年龄 * 12 AS '退休年龄合计月数'
|
||||
,tt.查询日期
|
||||
,tt.当前日期
|
||||
,tt.跨度类型
|
||||
,tt.时间跨度
|
||||
,(tt.时间跨度 * CASE tt.跨度类型 WHEN 'M' THEN 1 ELSE 12 END) '跨度区间结束'
|
||||
FROM T_BD_StaffData t0
|
||||
INNER JOIN T_BD_StaffData_L t0_l on t0.FID = t0_l.FID
|
||||
INNER JOIN (
|
||||
SELECT t1e.FENTRYID AS SEXID,t1e_l.FDATAVALUE AS '性别'
|
||||
,(CASE t1e_l.FDATAVALUE WHEN '女' THEN 55 ELSE 60 END) '法定退休年龄'
|
||||
FROM T_BAS_ASSISTANTDATA_L t1_l
|
||||
INNER JOIN T_BAS_ASSISTANTDATAENTRY t1e on t1_l.FID = t1e.FID AND t1_l.FNAME = '性别' AND t1_l.FLOCALEID = 2052
|
||||
INNER JOIN T_BAS_ASSISTANTDATAENTRY_L t1e_l on t1e.FENTRYID = t1e_l.FENTRYID AND t1e_l.FLOCALEID = 2052
|
||||
) t1 on t0.FSEX = t1.SEXID
|
||||
LEFT JOIN T_ORG_POST_L t2_l on t2_l.FPOSTID = t0.FPOSTID
|
||||
LEFT JOIN T_BD_DEPARTMENT_L t3_l on t3_l.FDEPTID = t0.FDEPARTMENTID
|
||||
,(
|
||||
SELECT tt.跨度类型,tt.时间跨度,tt.当前日期
|
||||
,(CASE tt.跨度类型 WHEN 'M' THEN tt.查询日期 ELSE DATEADD(MONTH,0,DATEADD(YEAR,DATEDIFF(YEAR, 0, tt.查询日期),0)) END) AS '查询日期'
|
||||
FROM (SELECT '2053-10-20' AS '查询日期',CONVERT(varchar,GETDATE(),23) AS '当前日期','M' AS '跨度类型',1 '时间跨度') tt
|
||||
) tt
|
||||
WHERE t0.FTERMINATIONDATE IS NULL
|
||||
) tt
|
||||
WHERE 1=1
|
||||
AND (tt.退休年龄合计月数 - tt.截止年龄合计月数) BETWEEN 0 AND tt.跨度区间结束
|
||||
AND DATEDIFF(DAY,tt.当前日期,tt.法定退休日期) >= 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user