【问题标题】:SQL Start Date and End Date MatchingSQL 开始日期和结束日期匹配
【发布时间】:2022-12-01 18:15:04
【问题描述】:

我有一张包含客户 ID 和开始日期的表以及一张包含客户 ID 和结束日期的表。

表A

customer_id start_date
1 2022-01-01
1 2022-04-01
1 2022-07-01
2 2022-01-15
2 2022-03-25
3 2022-04-01
3 2022-08-01
4 2022-09-01

表B

customer_id end_date
1 2022-01-25
1 2022-05-03
2 2022-03-24
2 2022-03-29
3 2022-04-15

有没有一种方法可以获得如下所示的输出?

期望的输出

customer_id start_date end_date
1 2022-01-01 2022-01-25
1 2022-04-01 2022-05-03
1 2022-07-01
2 2022-01-15 2022-03-24
2 2022-03-25 2022-03-29
3 2022-04-01 2022-04-15
3 2022-08-01
4 2022-09-01

【问题讨论】:

    标签: sql date vertica


    【解决方案1】:

    此提示在 SQL Server 中使用 TSQL。

    select A.customer_id, A.start_date, B.end_date
    from 
        (select X.costumer_id, X.start_date, ROW_NUMBER() over (order by X.start_date) as ORDEM from TableA X) A
        left outer join (select X.customer_id, X.end_date, ROW_NUMBER() over (order by X.end_date ) as ORDEM  from TableB X) B on A.customer_id = B.customer_id and A.ORDEM = B.ORDEM
    order by A.customer_id, A.start_date
    

    希望能帮助到你。

    【讨论】: