当您将表格与公共列组合时重叠日期逻辑 - 领先或滞后
Posted
技术标签:
【中文标题】当您将表格与公共列组合时重叠日期逻辑 - 领先或滞后【英文标题】:Overlapping dates logic when your are combining tables with common columns-Lead or lag 【发布时间】:2020-10-13 16:15:38 【问题描述】:我在源中有 3 个表,我想应用联合并删除重复项并确保没有日期范围重叠。
Table 1 : Telst_Customer_current
Table 2 : Telst_Customer_history`enter code here`
Table 3 : Telst_Customer_tt
表 1 数据:Telst_Customer_current
cust_id Account_no Row_start_date Row_end_date
---------------------------------------------------------------------
123 68567 1/1/2012 5/5/2013
123 68567 5/5/2013 12/31/9999
表 2 数据:历史数据
cust_id Account_no Row_start_date Row_end_date
------------------------------------------------------------------------
123 68567 1/1/2009 1/1/2012
123 68567 1/1/2012 5/5/2013
123 68567 5/5/2013 12/31/9999
当我像这样组合所有三个表时,我应该得到下面的结果表集,这样日期不会重叠
预期结果:
cust_id Account_no Row_start_date Row_end_date
------------------------------------------------------------------------
123 68567 1/1/2009 1/1/2012
123 68567 1/1/2012 5/5/2013
123 68567 5/5/2013 12/31/9999
在约会时尝试过领先,但发现很难 还有一个快速简单的查询检查来查找引导逻辑是否在重叠故障检测中正常工作。感谢您对此的帮助。
【问题讨论】:
您能分享您迄今为止尝试过的查询吗?表3数据在哪里? 【参考方案1】:联合起来怎么样?
Select col1, col2, col3 from Table1
Union
Select col4, col5, col6 from Table2
Union
Select col7, col8, col9 from Table2
【讨论】:
否。合并后我将如何确保日期范围不重叠(比如当我合并当前交易和历史交易时 因此,在您的示例中,您提供的日期范围是完全匹配的。如果是这种情况,工会会解决它,因为它会删除重复项。但是,在您的情况下,如果发生日期范围重叠,即在一个表中,日期范围是 1 月 1 日 - 1 月 10 日,另一个是 1 月 8 日 - 1 月 16 日,您的场景不涵盖发生的情况然后。你想让它成为一个大的连接跨度还是选择一个而不是另一个,如果是的话,是哪一个以及为什么。以上是关于当您将表格与公共列组合时重叠日期逻辑 - 领先或滞后的主要内容,如果未能解决你的问题,请参考以下文章