【发布时间】:2021-03-19 03:57:07
【问题描述】:
我尝试了很多小时不同的替代方案,但没有成功。 我正在使用员工数据集,该数据集在每次数据更改后创建一个新行以保存历史记录。同样对于相同的 effective_date,您可以使用 effective_sequence 字段进行多个更改。员工数据如下所示:
| EMPLOYEE_ID | EFFECTIVE_DATE | EFFECTIVE_SEQ | ADRESS | PHONE | |
|---|---|---|---|---|---|
| 505 | 01/01/2020 | 1 | MyHome 01 | 1113889 | cparker@mail.com |
| 505 | 15/12/2019 | 2 | My Adress 02 | 1168206 | cparker@mail.com |
| 505 | 15/12/2019 | 1 | 1168206 |
我需要带上当前值的 select *,为最后一个值附加一个 select *。例如:
| EMPLOYEE_ID_NOW | EFFECTIVE_DATE_NOW | EFFECTIVE_SEQ_NOW | ADRESS_NOW | PHONE_NOW | EMAIL_NOW | EMPLOYEE_ID_PREV | EFFECTIVE_DATE_PREV | EFFECTIVE_SEQ_PREV | ADRESS_PREV | PHONE_PREV | EMAIL_PREV |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 505 | 01/01/2020 | 1 | MyHome 01 | 1113889 | cparker@mail.com | 505 | 15/12/2019 | 2 | My Adress 02 | 1168206 | cparker@mail.com |
Oracle 的版本是 11g
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
employee_id_now和employee_id_prev没有意义。如果员工 id 发生变化,您如何按员工匹配行?
标签: sql oracle datetime pivot aggregate-functions