gpt4 book ai didi

sql - 在日期范围内查找匹配值并返回值

转载 作者:行者123 更新时间:2023-12-02 09:12:13 25 4
gpt4 key购买 nike

我正在寻找一种解决方案,我想找到在特定时间范围内有效的价格并将结果插入交易表中。价格表仅在价格更新时有日期戳,并且价格更改会创建一个包含新日期的新行。

我已将两个表连接在一起,但我的尝试只会导致创建多个额外的行。

 SELECT t.ID
,t.Date
,t.ArtNo
,t.SellPrice
,p.Price

FROM TRANS t

LEFT JOIN Price p ON p.ArtNo = t.ArtNo AND p.Date <=t.Date

期望的结果:

ID  Date                ArtNo   SellPrice  Price
1 17/08/2016 00:00:00 A1010 30 21.8
2 02/04/2017 00:00:00 A1010 31 21.8
3 01/03/2018 00:00:00 A1010 31 22.35
4 01/11/2016 00:00:00 B2000 5 4.1
5 30/05/2017 00:00:00 B2000 5 4.17
6 29/10/2017 00:00:00 B2000 5 4.17

SQL Fiddle

最佳答案

 SELECT 
t.ID
, t.Date
, t.ArtNo
, t.SellPrice
, pr.Price

FROM TRANS t
OUTER APPLY ( SELECT TOP (1) p.Price
FROM Price p
WHERE p.ArtNo = t.ArtNo
AND p.Date <=t.Date
ORDER BY p.Date DESC
) pr(Price)

关于sql - 在日期范围内查找匹配值并返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50875156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com