In Access database file, I have:
T1
x
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;