Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Verschachtelte Update Abfrage SQL

Begonnen von Hansgerd, März 22, 2011, 12:00:31

⏪ vorheriges - nächstes ⏩

Hansgerd

Hallo, 
ich habe ein Problem mit einer Abfrage in Access:

habe die Tabelle:
,,artikelstamm"

ArtNr      Warengruppe      Länge

1-01      1         20
2-01      2         35   
..      ...         ....
3-01      24         15   
3-02      24         30
4-01      24         0
4-02      24         45   
4-03      24         0
...      ...         ...

Aufgabe:  Alle Artikel der Warengruppe 24 welche die Länge Null haben sollen aktualisiert werden. Als Länge dieser Artikel (hier 4-01 und 4-03) soll die Durchschnittslänge über alle Artikel der Warengruppe (welche nicht die Länge Null haben) eingetragen werden.

Mein code:

UPDATE artikelstamm
SET Länge = (SELECT AVG(Länge)
                             FROM artikelstamm
                             WHERE (Warengruppe=24))
WHERE ((Warengruppe=24) AND (Länge=0));

)


Wenn ich ausführe kommt der Fehler: Operation muss eine aktualisierbare Abfrage verwenden

Wäre super cool wenn mir jemand einen Tip geben könnte was falsch ist.
Danke schon im Voraus
Gruß
Hans

Josef P.

Hallo!

Eigentlich wäre nichts falsch. Jet interpretiert leider eine Abfrage als nicht aktualisierbar, wenn eine nicht aktualisierbares Subselect-Anweisung vorkommt - auch wenn das eigentlich keine Rolle für die Aktualisierbarkeit des Datensatzes spielt.
Abhilfe schafft in so einem Fall der Einsatz von Domain-Aggregat-Funktionen oder einer VBA-Hilfsfunktion.
z. B.:
UPDATE artikelstamm
SET Länge = DAVG("Länge", "Artikelstamm", "Warengruppe=24")
WHERE Warengruppe=24 AND Länge=0


mfg
Josef

Hansgerd

Hey super das hat funktioniert,danke!!