1

我有一个 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 的 adDate 将是 12/10/1972

4

2 回答 2

1

您可以使用 DMin:

UPDATE sales  
SET sales.adDate = DMin("lastsaleDate","sales","productID=" & productid)
于 2012-09-11T20:11:15.253 回答
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;
于 2012-09-11T20:19:34.757 回答