【问题标题】:Merge two table based on date and key fields根据日期和关键字段合并两个表
【发布时间】:2020-06-22 16:05:34
【问题描述】:

我有两个带有 version_start 和 version_end 日期的表。我想合并这些表,如下例所示。

表 1

VERSION_START_DT    VERSION_END_DT  KEY ATTR1   
6/2/2020            6/16/2020       123  A  
6/17/2020           12/31/2022      123  B  
                

表 2

VERSION_START_DT    VERSION_END_DT  KEY ATTR2   
6/11/2020           12/31/2023      123  C  
            

输出应该是不重叠的版本日期及其相应属性的值

VERSION_START_DT    VERSION_END_DT  KEY ATTR1   ATTR2
6/2/2020            6/10/2020       123   A     NULL
6/11/2020           6/16/2020       123   A     C
6/17/2020           12/31/2022      123   B     C
01/01/2023          12/31/2023      123   NULL  C

【问题讨论】:

标签: mysql sql oracle join


【解决方案1】:

请尝试这样的事情

SELECT version_start.VERSION_START_DT , version_end.VERSION_END_DT, version_start.KEY
FROM Orders
INNER JOIN version_end ON version_start.ATTR1=version_end.ATTR2;

教程https://www.w3schools.com/sql/sql_join.asp

或者这个请复制粘贴一般查询,然后按年编辑查询

选择 version_start.VERSION_START_DT、version_end.VERSION_END_DT 从订单 INNER JOIN version_end ON version_start.VERSION_START_DT = version_end.VERSION_END_DT;

你可以试试这样的

【讨论】:

  • SELECT version_start.VERSION_START_DT , version_end.VERSION_END_DT, version_start.KEY FROM version_start INNER JOIN version_end ON version_start.ATTR1=version_end.ATTR2;
  • 不要只是发布代码,解释它在做什么以及为什么。
  • 但一般来说,我们避免回答要求我们为其编写基本代码的问题。他们应该尝试自己解决问题,然后我们帮助他们解决问题。
  • 不要将代码放入 cmets。如果您需要更正答案,请点击edit 链接。
  • 将解释放在答案中,而不是 cmets。
猜你喜欢
  • 2022-11-28
  • 2021-09-17
  • 1970-01-01
  • 2015-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多