我有一个MS访问表,其中包含以下列和示例记录。
如何使用每个ProductID的最小LastSaleDate更新adDate值。
orderID productID lastsaleDate adDate
1 1 10/20/2012
2 1 5/10/2007
3 1 4/1/2004
4 1 20/11/2011
5 2 10/10/2010
6 2 12/10/1972
例如,ProductID 1的adDate将是4/1/2004 对于ProductID 2将是12/10/1972
答案 0 :(得分:1)
您可以使用DMin:
UPDATE sales
SET sales.adDate = DMin("lastsaleDate","sales","productID=" & productid)
答案 1 :(得分:0)
除非您有充分的理由在表中实际存储adDate
值,否则请考虑在需要时随时使用查询计算adDate
。这样,您就不会冒险显示尚未更新的adDate
值,以反映基础数据的最新更改。
SELECT
y.orderID,
y.productID,
y.lastsaleDate,
sub.adDate
FROM
YourTable AS y
INNER JOIN
(
SELECT productID, Min(lastsaleDate) AS adDate
FROM YourTable
GROUP BY productID
) AS sub
ON y.productID = sub.productID;