【问题标题】:SQL join two tables with no key column but need to join with date filter columnSQL连接两个没有键列但需要与日期过滤列连接的表
【发布时间】:2021-02-23 02:21:00
【问题描述】:

我想加入两个表。下表如下,

表 A:

Batch_ID INT,
Start_Dt DATE,
Expiry_Dt DATE

表 B:

Purchase_Dt DATE

我需要为每个购买日期获取两个最早的批次代码。购买日期应大于或等于 start_dt 且 expiry_dt 应小于或等于购买日期。

【问题讨论】:

标签: mysql sql sql-server


【解决方案1】:

您可以尝试使用row_number()

select Purchase_Dt,Batch_ID from
(
select Purchase_Dt,Batch_ID,row_number() over(partition by Purchase_Dt order by batch_id desc) as rn 
from B join A on Purchase_Dt>=start_dt and Purchase_Dt<=Expiry_Dt
)f where rn=1

【讨论】:

    猜你喜欢
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 2019-06-24
    • 2012-09-17
    • 2010-12-20
    • 2021-12-25
    • 2019-08-26
    • 1970-01-01
    相关资源
    最近更新 更多