同じキー値を持つ別のテーブルの最大日付を持つあるテーブルの "mostRecentDate"フィールドを更新したいとします。簡略テーブルスキーマ:外部キーを持つ別のテーブルの最大値を持つテーブルのフィールドを更新
C(C_ID、mostRecentDate)(theDate L_ID、C_ID) L
L.c_idはC.c_idへの外部キー参照です。
Select MAX(theDate)
FROM L
Group by L.c_id
は、各C_IDの最大の日付を与えるので、(発生したエラーは、何行に更新しない)私は
UPDATE C
SET C.mostRecentDate= (SELECT Max(theDate)
FROM L
Where L.c_id = C.c_id
Group by L.c_id)
経由で更新しようとしました。しかし、このクエリは何もしません。私はMS Access 2003を使用しています。
お寄せいただきありがとうございます!私はSQL内でAccess関数を使用するとは思わなかった。私が最大の日付を保存する理由は、別の結合を行う必要がないようにするためです。最大の日付は、既にかなりの数の結合を含むクエリを使用してデータシートに埋め込まれており、結合の時間の複雑さは悪いです。私はこの場合、速度のために非冗長ストレージを犠牲にすることに決めました。 – Christine
ようこそ。 UPDATEステートメントはAccessで難しいかもしれません。多くの試みが "更新可能なクエリを使用する必要があります"というエラーメッセージを表示します。ドメイン機能(DMax、DMin、DLookupなど)は、これらの状況のいくつかのための有効な回避策となります。 – HansUp