SQL查询以获取先前和当前的工作和位置数据
我有一个桌子ASG,如下所示 -
ASG_NUMBER START_dATE END_DATE JOB_CODE GRADE_CODE POS_CDOE
10 01-JAN-2021 08-JUN-2021 S29 Engineer Manager
10 09-JUL-2021 31-DEC-2021 S29 Sr. Engineer Manager
10 01-JAN-2022 31-DEC-4712 S56 principal Sr.Manager
11 16-FEB-2021 22-NOV-2021 A1 Marketing Analyst
11 23-NOV-2021 31-DEC-4712 A2 Marketing Analyst
我想确定成绩和工作变化的员工,然后显示当前和以前的工作和职位数据。 这可以像下面的那样,
ASG_NUMBER CUR_POS_CODE CUR_JOB_CODE CUR_GRADE_CODE PREV_JOB_CODE PREV_GRADE_CODE PREV_POS_CODE Curr_date Prev_date Time in previous pos(Y m)
10 Sr.Manager S56 PRINCIPAL S29 Sr.engineer Manager 1-jan-2022 09-JUL-2021 2 y 0 m
11 Analyst A2 Marketing A1 23-Nov-2022 16-fen-2021 9m
如何使用滞后函数来获得当前和先前的作业,等级和位置的这些值?
I have a table asg is like below -
ASG_NUMBER START_dATE END_DATE JOB_CODE GRADE_CODE POS_CDOE
10 01-JAN-2021 08-JUN-2021 S29 Engineer Manager
10 09-JUL-2021 31-DEC-2021 S29 Sr. Engineer Manager
10 01-JAN-2022 31-DEC-4712 S56 principal Sr.Manager
11 16-FEB-2021 22-NOV-2021 A1 Marketing Analyst
11 23-NOV-2021 31-DEC-4712 A2 Marketing Analyst
I want to identify employees who have had a change in Grade and Job and then show the current and previous job and position data.
This can be like below
ASG_NUMBER CUR_POS_CODE CUR_JOB_CODE CUR_GRADE_CODE PREV_JOB_CODE PREV_GRADE_CODE PREV_POS_CODE Curr_date Prev_date Time in previous pos(Y m)
10 Sr.Manager S56 PRINCIPAL S29 Sr.engineer Manager 1-jan-2022 09-JUL-2021 2 y 0 m
11 Analyst A2 Marketing A1 23-Nov-2022 16-fen-2021 9m
How can i use lag function to get these values for current and previous job , grade and position ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在
lag(...)上使用(...按END_DATE ASC订购)
或lead> lead(...)通过(...按END_DATE DESC订购)
>分析功能,然后找到每个分区的最后一行,请使用row_number
分析功能:db<> fiddle “ nofollow noreferrer”>在这里
Use either the
LAG(...) OVER (... ORDER BY end_date ASC)
orLEAD(...) OVER (... ORDER BY end_date DESC)
analytic functions and then, to find the last row of each partition, use theROW_NUMBER
analytic function:db<>fiddle here