我有一个包含3列的主表(T1):产品,数量,购买日期
例如:
MouseFX, 13, 24/12/2015
然后创建一个包含3列的辅助表(T2):产品,单价,发件人日期。
根据更新单价的时间,同一产品在T2中可能有多个行:-
MouseFX, 12$, 24/12/2013
MouseFX, 13$, 23/1/2014
MouseFX, 15$, 2/3/2018
对于特定产品('MouseFX
'),我需要使用以下命令从UnitPrice
中检索T2
:
PurchaseDate (24/12/2015) > FromDate(23/1/2014)
AND PurchaseDate< FromDate(2/3/2018)
我认为应该通过LEFT JOIN完成
SELECT T1.*, T2.UnitPrice from T1 LEFT JOIN T2 ON PurchaseDate ?????/?
我希望我可以发布一些代码,但没有任何想法。在Excel / VBA中,我会在第四个参数#0中使用Vlookup
答案 0 :(得分:0)
您可以使用相关子查询:
SELECT T1.*,
(SELECT TOP (1) T2.UnitPrice
FROM t2
WHERE t2.product = t1.product AND
t2.FromDate <= t1.PurchaseDate
ORDER BY t1.FromDate DESC
) as T2.UnitPrice
FROM T1;
通常的做法是在第二个表中包含一个ToDate
,因此它是2型维度,您可以在其中使用JOIN
语法。