我有一个带有scdType2的employee表作为laoding技术(Empid是键列)。 我需要跟踪关键列的属性更改(Reporting_To)并填充到临时表中。
在Employee表中使用Empid作为键列
的现有recEmpid |Project | Reporting_To |Valid_From | Valid_Upto | Creation_Date | Modification_Date
------------------------------------------------------------------------
123456 |ABC | 123 |01-Jan-2017 | 31-Dec-9999 | 01-Jan-2017
作为增量版(2017年5月28日的文件)的一部分,我获得了与Empid相同的记录:
Empid | Project | Reporting_To | Valid_From | Valid_Upto
--------------------------------------------------------
123456 | DEF | 123 |28-May-2017 | 31-Dec-9999
因此,我的Employee表将使用Scd2逻辑更新,如下所示:
Empid | Project | Reporting_To | Valid_From | Valid_Upto | Creation_Date | Modification_Date
--------------------------------------------------------------------------------------------
123456 |ABC | 123 | 01-Jan-2017 | 27-May-2017 | 01-Jan-2017 | 28-May-2017
123456 |DEF | 123 | 28-May-2017 | 31-Dec-9999 | 28-May-2017
这里更改Project,因此Scd2。 但由于Reporting_To中没有更新,因此不会进入临时表
作为增量版(2017年5月29日的文件)的一部分,我获得了与Empid相同的记录:
Empid |Project | Reporting_To | Valid_From | Valid_Upto
-------------------------------------------------------
123456 |DEF | 589 | 30-May-2017 | 31-Dec-9999
因此,我的Employee表将使用Scd2逻辑更新,如下所示:
Empid | Project | Reporting_To |Valid_From | Valid_Upto | Creation_Date | Modification_Date
------------------------------------------------------------------------
123456 |ABC | 123 | 01-Jan-2017 |27-May-2017 | 01-Jan-2017 | 28-May-2017
123456 |DEF | 123 | 28-May-2017 |29-May-2017 |28-May-2017 |29-May-2017
123456 |DEF | 589 | 30-May-2017 |31-Dec-9999 | 29-May-2017
由于Reporting_To中有更新,临时表中会有一个条目:
Empid |Reporting_To |Valid_From |Valid_Upto
-------------------------------------------
123456 | 589 | 30-May-2017 | 31-Dec-9999
请帮我查询在Reporting_To中跟踪更改,从员工表中挑选所需的值并将其加载到临时表中
答案 0 :(得分:0)
您可以通过Empid和Reporting_To使用select with group
select * from Employee group by Empid, Reporting_To;