为什么在插入MS Access 2013时不断收到语法错误

问题描述

我是sql新手。我想在表中添加行而不创建重复项,但是我不断收到错误,我也不知道为什么:

INSERT INTO [P ET FA] (id_danger,P,FA)
    (SELECT 
         measure.id_danger,SUM(mesure.valeur_mesure) AS P,SUM(mesure.Val) AS FA
     FROM mesure
     GROUP BY mesure.id_danger)
WHERE mesure.id_danger != [P ET FA].id_danger

解决方法

我对ACCESS不太熟悉,但是您可以尝试:

INSERT INTO [P ET FA] (id_danger,P,FA)
SELECT measure.id_danger,SUM(mesure.valeur_mesure) AS P,SUM(mesure.Val) AS FA
FROM mesure
where mesure.id_danger not in (select id_danger FROM [P ET FA])
GROUP BY mesure.id_danger
,
INSERT INTO [P ET FA] (id_danger,FA)
   SELECT SRC.id_danger,SUM(SRC.valeur_mesure) AS P,SUM(SRC.val) AS FA 
     FROM mesure SRC
          LEFT JOIN [P ET FA] DEST
            ON SRC.id_danger = DEST.id_danger
     WHERE DEST.id_danger IS NULL
           GROUP BY SRC.id_danger

这只会为目标表中尚未存在的id_danger值插入值。