ich hab leider ein kleines Problem mit einem ziemlich umfangreichen Programm. Ich brauche eine Abfrage in der ich die Summe einzelner Preise in der Tabelle Auftragsposition, die die gleiche Auftragsnummer besitzen, in die Tabelle Kundenaufträge einfügen kann, um den Rechnungsbetrag auszuweisen. Hier ein Versuch:
UPDATE Kundenaufträge SET Rechnungsbetrag =
( SELECT Sum(Auftragsposition.Auftragspreis) AS ‚Rechnungsbetrag‘
FROM Auftragsposition INNER JOIN Kundenaufträge
ON Kundenaufträge.Auftragsnummer = Auftragsposition.Auftragsnummer)
WHERE Kundenaufträge.Auftragsnummer=Auftragsposition.Auftragsnummer;
Fehlermeldung:
Operation muss eine aktualisierbare Abfrage sein
Vielen Dank schon mal für die Hilfe!
Gruß
P.S. Ich sollte vielleicht noch dazu sagen, dass ich das alles im Quellcode eines Java-Programmes habe!
nur kurz drüber geschaut: du musst für den doppelten Join auf Kundenaufträge einen Aliasnamen vergeben, damit die DB die beiden Tabellen unterscheiden kann.
Gruß
Peter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
UPDATE Kundenaufträge SET Rechnungsbetrag =
( SELECT Sum(Auftragsposition.Auftragspreis) AS
‚Rechnungsbetrag‘
FROM Auftragsposition INNER JOIN Kundenaufträge
ON Kundenaufträge.Auftragsnummer =
Auftragsposition.Auftragsnummer)
WHERE
Kundenaufträge.Auftragsnummer=Auftragsposition.Auftragsnummer;
Kann es sein, daß Du im Sub-Select die Tabelle „Kundenaufträge“ einmal zuviel verjoinst?
Nimm das "INNER JOIN Kundenaufträge
ON Kundenaufträge.Auftragsnummer =
Auftragsposition.Auftragsnummer)" mal raus und mach vor dem „;“ noch die Klammer zu, dann müßte es klappen
UPDATE Kundenaufträge
SET Rechnungsbetrag = (SELECT Sum(Auftragsposition.Auftragspreis)
FROM Auftragsposition
WHERE Kundenaufträge.Auftragsnummer=Auftragsposition.Auftragsnummer);