まず第一に、私はそれについての質問と回答がすでにあることを知っています.このスレッドは私が必要とするものに最も近いものです:
FROM
しかし、句の近くで発生したと思われる構文エラー (演算子がありません) が表示されます。しかし、私はそれを見ることができません。FROM
それ自体が好きではありませんか?私はFROM
更新ステートメントで使用することに慣れていませんが、リンクしたばかりの QA から有効であるように思われます :|
そこに構文エラーが発生する理由は何ですか?
Access 2007 SP3 を使用しています。
編集:うわー、クエリを投稿するのを忘れていました...
UPDATE r
SET
r.tempsmoy_requete_min = tmm.moy_mob_requete
FROM
rapports AS r INNER JOIN
(SELECT
id_fichier,
Round(Sum(temps_requete_min)/3,0) As moy_mob_requete,
Round(Sum(temps_analyse_min)/3,0) As moy_mob_analyse,
Round(Sum(temps_maj_min)/3,0) As moy_mob_maj,
Round(Sum(temps_rap_min)/3,0) As moy_mob_rap,
Round(Sum(temps_ddc_min)/3,0) As moy_mob_ddc
FROM maintenances
WHERE
periode In (10,9,8) And
annee=2011
GROUP BY id_fichier) AS tmm ON rapports.id_rapport = tmm.id_fichier
WHERE
1=0
一部は、WHERE 1=0
サブクエリを実行する前にさらにテストしたいためです。
編集:これは私が試している簡単なクエリです。今回は別のエラーが発生します。これで、tempsmoy_requete_min (およびおそらく他のすべての左側のオペランド) が集計関数の一部ではないことがわかります...これが私のクエリのポイントです。何か案が ?
UPDATE
rapports INNER JOIN maintenances ON rapports.id_rapport = maintenances.id_fichier
SET
rapports.tempsmoy_requete_min = Round(Sum(temps_requete_min)/3,0),
rapports.tempsmoy_analyse_min = Round(Sum(temps_analyse_min)/3,0),
rapports.tempsmoy_maj_min = Round(Sum(temps_maj_min)/3,0),
rapports.tempsmoy_rap_min = Round(Sum(temps_rap_min)/3,0),
rapports.tempsmoy_ddc_min = Round(Sum(temps_ddc_min)/3,0)
WHERE
maintenances.periode In (10,9,8) And
maintenances.annee=2011 AND
1=0