使用子选择和位置更新
Update with subselect and where
以下代码在 T-SQL 中运行良好,但在 JET SQL 中运行良好,在 Access 中:
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);
为什么不起作用!?
我很难看 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]));
以下代码在 T-SQL 中运行良好,但在 JET SQL 中运行良好,在 Access 中:
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);
为什么不起作用!?
我很难看 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]));