UPDATE mit SELECT Anweisung

Hallo zusammen,

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!

Hallo,

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]

Hi!

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);

Grüße,
Tomh

Danke, es hat funktioniert! ^^