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 に答える