需要从历史表中获取最新记录,同时与表连接。
当我用下面的方法进行查询时,需要从历史表中获取最新的记录
select * from Product, ProductHistory where Product.ProductNo=ProductNo.ProductNo
它给出了所有的记录,我需要的是ProductHistory表中的最新记录。
未经测试
我是这样做的。
先用一个子查询来获取每个产品的 "最新 "日期。
select ProductNo, max(Date)
from ProductHistory
group by ProductNo
然后,你必须把这个结果加入ProductHistory表,得到相应的 "交易"。
select PH.ProductNo, PH.Transaction, PH.Date
from (
select ProductNo, max(Date)
from ProductHistory
group by ProductNo
) MaxPH
inner join ProductHistory PH
on PH.ProductNo = MaxPH.ProductNo
and PH.Date = MaxPH.Date
最后,加入Product表,得到Product(名称)
select P.Product, P.ProductNo, PH.Transaction, PH.Date
from (
select ProductNo, max(Date)
from ProductHistory
group by ProductNo
) MaxPH
inner join ProductHistory PH
on PH.ProductNo = MaxPH.ProductNo
and PH.Date = MaxPH.Date
inner join Product P on P.ProductNo = PH.ProductNo
你也可以用带分区的行号来寻找 "最新的"。