Update mit Select- Anweisung

soa

Erfahrenes Mitglied
Hallo zusammen,

ich würde gern in einer Tabelle alle Werte aus dem Attribut "Menge", die die MaterialID 1 haben, auf den höchsten Wert des Attributes "Menge" setzen.

Also:

SELECT MAX(Menge) FROM <tabelle>;

gibt mir den höchsten Wert von Menge aus der Tabelle.

Nun sollen alle Werte aus Menge, die die MAterialID 1 haben, auf diesen Wert gesetzt werden.

Das ganze in einem Statement.


Vielen Dank im voraus.

MfG
SOA
 
Hi,
du kannst nicht innerhalb einer Update Abfrage ein Sub-Select auf die selbe Tabelle tätigen.
Du müsstest entweder mit Zwischentabellen arbeiten oder in deinem Fall einfach das Update manuell zusammensetzen (ist ja ein konstanter Wert).

Gruß
 
Hallo,

ich habe es halbwegs geklärt, bzw. auf der anderen Seite ist gar nichts geklärt.

Die Abfrage wäre so wie ich es gedacht habe richtig:

UPDATE <Tabelle> SET Menge = (SELECT MAX(Menge) FROM <tabelle>)
WHERE ID = irgendetwas;
-------------------------------------------------------------------------------------------------------------

Mit Firebird funktioniert wiese Abfrage perfekt.

Nur in MySQL kommt eine Fehlermeldung. Habe meine DB extra auf die Version 5.0
updedated, jedoch scheint es so zu sein, das immer noch nicht alle SUBSELECTS
unterstützt werden.

Gruß
SOA
 
Ich glaube das geht so:
Code:
update tabelle1, tabelle2 set tabelle1.beschreibung = tabelle2.beschreibung where tabelle1.id=tabelle2.id;
 
Zurück