-1

在 Access 数据库文件中,我有:

T1

id   Item    TransactionDate  
-----------------------------
1    TV      31/12/2017  

T2

id   Item   U_Price      FromDate      Type
--------------------------------------------
1    TV     12.1$        31/12/2018   Smart55
2    TV     15.3$        30/11/2019   Smart55
3    TV     11.2$        25/02/2020   Smart56
4    TV     21.1$        01/05/2016   Smart10

我需要生成的表有 1 行(来自 T1)与最相关U_Price,在示例 21.1$ 中,最高FromDate小于TransactionDate

这个问题已经在这里Type得到了正确的回答,但现在我也需要获取

4

2 回答 2

1
SELECT T1.*, b.U_price, b.type from T1 ,
(SELECT *
FROM t2
WHERE U_price 
    in( Select Top 1 a.U_price
         FROM T1, T2 as a 
         Where t1.item = a.item and  a.fromDate < t1.transactionDate  order by a.fromDate desc)
) as b
于 2021-02-27T11:02:42.677 回答
1

考虑:

SELECT T1.*, Top1.* FROM T1 INNER JOIN (
      SELECT T2.* FROM T2
      WHERE ID IN (
          SELECT TOP 1 Dupe.ID FROM T2 AS Dupe INNER JOIN T1 
          ON Dupe.Item=T1.Item 
          WHERE Dupe.Item=T2.Item AND Dupe.FromDate<=T1.TransactionDate 
          ORDER BY Dupe.FromDate DESC)) AS Top1 
ON T1.Item = Top1.Item;
于 2021-02-27T09:50:37.527 回答