请教大家一个关于Sql Server问题,在线等,谢谢。
问题描述:现在有两条记录。
EmployeeSalaryGradeID BeginDate EndDate
10F8C063-C3B4-4D7D-BA0A-DF8125BE5516 2017-01-01 2019-11-30
EA0949F0-25C8-42BC-970D-BF572258309B 2019-12-01 NULL
第一条的BeginDate:2017-01-01;EndDate:2019-11-30
第二条的BeginDate:2019-12-01;EndDate:NULL (EndDate为NULL,可以当做DateTime最大值,也就是9999-12-31。 )
想要效果:
#1:现在我需要按照每年来处理:
例如,
如果我要查询2016年的,那么查不到记录,因为上面两条记录,BeginDate最小的是2017-01-01。
如果我要查询2019年的,那么需要查出来有12条记录,
分别是:
EmployeeSalaryGradeID BeginDate EndDate
10F8C063-C3B4-4D7D-BA0A-DF8125BE5516 2019-01-01
10F8C063-C3B4-4D7D-BA0A-DF8125BE5516 2019-02-01
10F8C063-C3B4-4D7D-BA0A-DF8125BE5516 2019-03-01
10F8C063-C3B4-4D7D-BA0A-DF8125BE5516 2019-04-01
10F8C063-C3B4-4D7D-BA0A-DF8125BE5516 2019-05-01
10F8C063-C3B4-4D7D-BA0A-DF8125BE5516 2019-06-01
10F8C063-C3B4-4D7D-BA0A-DF8125BE5516 2019-07-01
10F8C063-C3B4-4D7D-BA0A-DF8125BE5516 2019-08-01
10F8C063-C3B4-4D7D-BA0A-DF8125BE5516 2019-09-01
10F8C063-C3B4-4D7D-BA0A-DF8125BE5516 2019-10-01
10F8C063-C3B4-4D7D-BA0A-DF8125BE5516 2019-11-01
EA0949F0-25C8-42BC-970D-BF572258309B 2019-12-01
如果我要查询2020年的,那么需要查出来有12条记录,
分别是:
EmployeeSalaryGradeID BeginDate EndDate
EA0949F0-25C8-42BC-970D-BF572258309B 2020-01-01
EA0949F0-25C8-42BC-970D-BF572258309B 2020-02-01
EA0949F0-25C8-42BC-970D-BF572258309B 2020-03-01
EA0949F0-25C8-42BC-970D-BF572258309B 2020-04-01
EA0949F0-25C8-42BC-970D-BF572258309B 2020-05-01
EA0949F0-25C8-42BC-970D-BF572258309B 2020-06-01
EA0949F0-25C8-42BC-970D-BF572258309B 2020-07-01
EA0949F0-25C8-42BC-970D-BF572258309B 2020-08-01
EA0949F0-25C8-42BC-970D-BF572258309B 2020-09-01
EA0949F0-25C8-42BC-970D-BF572258309B 2020-10-01
EA0949F0-25C8-42BC-970D-BF572258309B 2020-11-01
EA0949F0-25C8-42BC-970D-BF572258309B 2020-12-01
总结:也就是需要筛选出具体年份的记录,然后再按照月份分割。这种效果怎么实现呢?在线等,万分感激!