Sql 访问-查询不可执行

Sql 访问-查询不可执行,sql,windows,ms-access,Sql,Windows,Ms Access,错误是查询必须至少基于一个表或查询 查询: 在Gehaltsabrechnung IBAN、MitarbeiterID、Betrag值中插入 从Mitarbeiter中选择IBAN,其中MitarbeiterID=2,2, 从中选择SUMStunden_Gearbeitet*studenlohn mitarbeiterrollen上的mitarbeiterrollen内部联接ROLLE.RolleID=ROLLE.RolleID 其中,MitarbeiterID=2 你想插入。选择在MS Acc

错误是查询必须至少基于一个表或查询

查询:

在Gehaltsabrechnung IBAN、MitarbeiterID、Betrag值中插入 从Mitarbeiter中选择IBAN,其中MitarbeiterID=2,2, 从中选择SUMStunden_Gearbeitet*studenlohn mitarbeiterrollen上的mitarbeiterrollen内部联接ROLLE.RolleID=ROLLE.RolleID 其中,MitarbeiterID=2 你想插入。选择在MS Access中,这看起来像:

INSERT INTO Gehaltsabrechnung (IBAN, MitarbeiterID, Betrag)
    SELECT m.IBAN, m.MitarbeiterID,
           (SELECT SUM(Stunden_Gearbeitet * Stundenlohn) 
            FROM mitarbeiterrollen INNER JOIN
                 ROLLE
                 ON mitarbeiterrollen.RolleID = rolle.RolleID
            WHERE MitarbeiterID = m.MitarbeiterID
           )
    FROM Mitarbeiter as m
    WHERE m.MitarbeiterID = 2;
注意,我用m.MitarbeiterID的引用替换了大多数2。这有助于确保输入错误不会影响查询


我还建议在子查询中使用限定列名,但此版本应该可以使用。

我们的MitarbeiterRollen表:

我们的Gehaltsabrechnung桌子

我们的Rolle表:


我们的Mitarbeiter表:

当我执行您的代码时,我没有得到它必须基于表的错误,但我得到的错误是缺少运算符。@Tobi0812。一个额外的收盘价悄悄地进来了。