2012-09-11 29 views
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 

例如,adDate的產品ID 1將是2004年4月1日 和產品ID 2將是1972年12月10日

回答

0

除非您有充足的理由在您的表中實際存儲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; 
1

您可以使用DMIN:

UPDATE sales 
SET sales.adDate = DMin("lastsaleDate","sales","productID=" & productid)