我一直是这个论坛的长期读者。它对我帮助很大,但是我有一个问题,我找不到特定于我要求的解决方案。
我的任务是制定一个指标来确定“员工绩效评估”逾期的天数。数据采用以下格式:
EmployeeID LastEvalCompleteDate NextEvalDueDate
1001 2010-01-01 2010-11-01
1001 2010-11-20 2011-11-01
1001 2011-10-29 2012-11-15
1002 NULL 2013-12-01
根据上面的示例数据,员工1001自 2010 年 1 月 1 日以来已经进行了 3 次评估。员工1002已于今年开始工作,他的第一次评估将于 2013 年 12 月 1 日到期。
我需要做的是将数据转换为这种格式:
EmployeeID EvalDueDate EvalCompleteDate DaysPastDue
1001 2010-11-01 2010-11-20 19
1001 2011-11-01 2011-10-29 -2
1001 2012-11-15 NULL 342 (based on today's date)
1002 2013-12-01 NULL -39 (based on today's date)
正如您所注意到的,我通过获取NextEvalDueDate
列的值并将其映射到EvalDueDate
新表中的列来派生一个新行。我还将NEXT 行LastEvalCompleteDate
的列中的值映射到该列。NextEvalDueDate
我无法遍历给定的行EmployeeID
。我尝试使用ROW_NUMBER() OVER (PARTITION BY ...)
,但它并没有带我去任何地方。
我感谢任何形式的帮助。谢谢你。