El error es "La consulta debe basarse en al menos una tabla o consulta".
La consulta:
INSERT INTO Gehaltsabrechnung (IBAN, MitarbeiterID, Betrag) VALUES (
(SELECT IBAN FROM Mitarbeiter WHERE MitarbeiterID = 2), 2,
(SELECT SUM(Stunden_Gearbeitet * Stundenlohn) FROM
(mitarbeiterrollen INNER JOIN ROLLE ON mitarbeiterrollen.RolleID = rolle.RolleID)
WHERE MitarbeiterID = 2)
)
Nuestra mesa "Gehaltsabrechnung"
2 respuestas
Quieres INSERT . . . SELECT
. En MS Access, esto se vería así:
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;
Tenga en cuenta que reemplacé la mayoría de los 2
s con referencias a m.MitarbeiterID
. Esto ayuda a garantizar que los errores tipográficos no afecten la consulta.
También recomendaría usar nombres de columna calificados en la subconsulta, pero esta versión debería funcionar.
Nuestra tabla "MitarbeiterRollen": https://i.stack.imgur.com/7pDct.png
Nuestra tabla "Gehaltsabrechnung" https://i.stack.imgur.com/dUKWd.png
Nuestra tabla "Rolle": https://i.stack.imgur.com/bhmYn.png
Nuestra tabla "Mitarbeiter": https://i.stack.imgur.com/yniNv.png
Nuevas preguntas
sql
El lenguaje de consulta estructurado (SQL) es un lenguaje para consultar bases de datos. Las preguntas deben incluir ejemplos de código, estructura de tabla, datos de muestra y una etiqueta para la implementación de DBMS (por ejemplo, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, etc.) que se utiliza. Si su pregunta se relaciona únicamente con un DBMS específico (usa extensiones / características específicas), use la etiqueta de ese DBMS en su lugar. Las respuestas a las preguntas etiquetadas con SQL deben usar SQL estándar ISO / IEC.