In Access database file, I have:
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
I need the resulting table to have 1 row (from T1) with the most relevant U_Price
, in the example 21.1$ with the highest FromDate
smaller than the TransactionDate
The question has been properly answered here but now I need to fetch Type
also
Advertisement
Answer
Consider:
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;