【发布时间】:2020-03-06 23:11:24
【问题描述】:
我有一个包含以下列的表格:
Emp_ID Number
Emp_flag Varchar2(1)
Date_1 Date
Date_2 Date
create_date Date
此表没有PK,Emp_id重复的记录很多..
我需要知道的是,当输入一个新的Date_1 时(因此空到某个日期,或从日期 1 到日期 2)发生在什么日期。
我不能只看一条记录来比较 Date_1 和 create_date,因为在给定 Emp_ID 的许多记录中,当 Date_1 简单地“复制”到新记录时,有很多次。 Date_1 可能最初是在 2019 年 2 月 15 日输入的,其值为 02/01/2019。现在假设 Date_2 于 2020 年 2 月 12 日添加。所以表格看起来像这样:
Emp_ID Emp_flag Date_1 Date_2 Create_Date
123 Y Null Null 1/18/2018
123 Y 02/1/2019 Null 02/15/2019
123 Y 02/1/2019 02/12/2021 02/12/2020
我需要一个 SQL 查询,它会告诉我 Emp_ID 123 在 2019 年 2 月 15 日输入了 02/1/2019 的 Date_1,并且不会获取任何其他记录。
预期输出:
Emp_ID Emp_flag Date_1 Date_2 Create_Date
123 Y 02/1/2019 Null 02/15/2019
示例 2(注意 date_1 不同):
Emp_ID Emp_flag Date_1 Date_2 Create_Date
456 Y Null Null 1/18/2018
456 Y 10/1/2019 Null 02/15/2019
456 Y 11/2/2019 02/12/2021 02/12/2020
预期输出:
Emp_ID Emp_flag Date_1 Date_2 Create_Date
456 Y 10/1/2019 Null 02/15/2019
456 Y 11/2/2019 02/12/2021 02/12/2020
示例 3:
Emp_ID Emp_flag Date_1 Date_2 Create_Date
456 Y Null Null 1/18/2018
456 Y 10/1/2019 Null 02/15/2019
456 Y 10/1/2019 Null 02/15/2019
456 Y 11/2/2019 02/12/2021 02/12/2020
预期输出:
Emp_ID Emp_flag Date_1 Date_2 Create_Date
456 Y 10/1/2019 Null 02/15/2019
456 Y 11/2/2019 02/12/2021 02/12/2020
示例 4:
Emp_ID Emp_flag Date_1 Date_2 Create_Date
456 Y 10/1/2019 Null 02/15/2019
456 Y 10/1/2019 Null 02/16/2019
预期输出:无记录。
【问题讨论】:
-
行是否会更新,或者是否会为每次数据更改创建一个新行?
-
没有更新。每次数据更改都会创建一个新的。
-
不完全确定我理解这个问题。您能否更详细地解释所需的标准和预期的输出
-
请查看添加的示例/预期结果