使用subselect和where进行更新

时间:2016-06-10 12:45:35

标签: ms-access-2010 jet

以下代码在T-SQL中工作正常,但在Access:

中不适用于JET SQL
UPDATE Superliste_Temp 
SET [Plan-TGrp-Spanne_Stfl1] = 
(SELECT [Plan-TGrp-Spanne_Stfl1] 
 FROM Superliste_Temp
 INNER JOIN dbo_Common_preferences
     ON Superliste_Temp.Teil = dbo_Common_preferences.AktivesTeil)
WHERE [Teilegruppe] = 
(SELECT [Teilegruppe] 
 FROM Superliste_Temp
 INNER JOIN dbo_Common_preferences
     ON Superliste_Temp.Teil = dbo_Common_preferences.AktivesTeil);

为什么不起作用??

1 个答案:

答案 0 :(得分:0)

我很难看到那个SQL来弄清楚它正在尝试做什么,但我知道Jet SQL在JOINS之后需要SET语句,所以我最好的猜测是:

UPDATE Superliste_Temp, Superliste_Temp AS ST1 
    INNER JOIN dbo_Common_preferences AS pref1 
    ON ST1.Teil = pref1.AktivesTeil 
SET Superliste_Temp.[Plan-TGrp-Spanne_Stfl1] = [ST1]![Plan-TGrp-Spanne_Stfl1]
WHERE (((Superliste_Temp.Teilegruppe)=[ST1]![Teilegruppe]));