irmi 10 Geschrieben 26. März 2009 Melden Teilen Geschrieben 26. März 2009 Hallo Newsgroup, ich habe eine Frage an die SQL Experten. Ich habe folgende Abfrage definiert: SELECT STUELI.STUELI, STUELIPOS.STUELI AS Expr1, STUELI.NAME, ARTIKEL.ARTIKEL, ARTIKEL.NAME AS Expr2, ARTIKEL.AKTIV, ARTIKEL.SERIENMATERIAL FROM STUELIPOS INNER JOIN STUELI ON STUELIPOS.STUELI = STUELI.STUELI INNER JOIN ARTIKEL ON STUELIPOS.ARTIKEL = ARTIKEL.ARTIKEL Nun möchte ich das Abfrageergebnis folgendermaßen updaten. Und zwar: UPDATE ARTIKEL SET SERIENMATERIAL=1 WHERE SERIENMATERIAL=NULL Kann man das kombinieren? DAs Ziel sollte sein, dass das Feld Serienmaterial (das nach der Abfrage in jedem Feld den WErt Null enthält) nachher eine 1 drinnenhat. Funktioniert das so? Herzlichen Dank für eure Hilfe! lg Zitieren Link zu diesem Kommentar
Poison Nuke 10 Geschrieben 26. März 2009 Melden Teilen Geschrieben 26. März 2009 die einfachste Lösung wäre, die Abfrage mit nur einem Ergebniswert zu machen (und zwar der Indexspalte von Artikel) und dann in der Updateklausel ein "WHERE ARTIKEL.ID IN (SELECT ARTIKEL.ID FROM ....)". Zitieren Link zu diesem Kommentar
irmi 10 Geschrieben 26. März 2009 Autor Melden Teilen Geschrieben 26. März 2009 hallo! danke für die rasche antwort! leider bin ich nicht so ein sql profi, könntest du mir das eventuell genauer erklären? danke! Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 26. März 2009 Melden Teilen Geschrieben 26. März 2009 Rein theoretisch (wenn ich auf den ersten Blick deine Datenstruktur verstanden habe) müsste doch folgendes Statement ausreichen: UPDATE ARTIKELSET SERIENMATERIAL=1WHERE IsNull(SERIENMATERIAL, '') = ''[/Code] Annahme 1: Es handelt sich um eine MS SQL Server-Datenbank Annahme 2: Du willst alle Artikel updaten, bei denen der Wert Serienmaterial aktuell NULL ist. Ich seh noch nicht den Grund, das mit der eigentlichen Abfragen zu verknüpfen. Oder? Zitieren Link zu diesem Kommentar
irmi 10 Geschrieben 26. März 2009 Autor Melden Teilen Geschrieben 26. März 2009 Hallo! Ja beide Annahmen sind richtig. Die Abfrage vorher brauche ich, weil eben nicht alle Artikel SErienmaterial sind, diese kriege ich mit der Abfrage, indem ich hinten noch ein LIKE mit dem gewünschten ARtikel dranhänge. Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 27. März 2009 Melden Teilen Geschrieben 27. März 2009 Ok, dann musst du das halt mit dem anderen Statement als zusätzliche Einschränkung verknüpfen: UPDATE ARTIKELSET SERIENMATERIAL=1WHERE IsNull(SERIENMATERIAL, '') = ''AND Artikel in(SELECT ARTIKEL.ARTIKELFROM STUELIPOS INNER JOIN STUELI ON STUELIPOS.STUELI = STUELI.STUELI INNER JOIN ARTIKEL ON STUELIPOS.ARTIKEL = ARTIKEL.ARTIKEL)[/Code] Aber: vorher Backup / testen in ner Testdatenbank, ob das Ergebnis deinen Wünschen entspricht. Zitieren Link zu diesem Kommentar
irmi 10 Geschrieben 2. April 2009 Autor Melden Teilen Geschrieben 2. April 2009 Hallo, danke nochmals für eure antworten! Leider hat es so nicht funktioniert, aber ich habe eine "bessere" Lösung gefunden. Das system bietet auch einen webimport mitels txt-Dateien, so ist es zwar ein bisschen zeitaufwändiger, aber auch schaffbar! danke nochmals! Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 2. April 2009 Melden Teilen Geschrieben 2. April 2009 Leider hat es so nicht funktioniert, aber ich habe eine "bessere" Lösung gefunden. Rein aus Interesse: Aber warum hat es auf diesem Wege nicht funktioniert? Zitieren Link zu diesem Kommentar
d.stegemann 10 Geschrieben 2. April 2009 Melden Teilen Geschrieben 2. April 2009 Hallo, Rein aus Interesse: Aber warum hat es auf diesem Wege nicht funktioniert? [/Quote] ich vermute mal der TO hat nicht alle Fakten auf den Tisch gelegt ;) Gruß Dirk Zitieren Link zu diesem Kommentar
irmi 10 Geschrieben 2. April 2009 Autor Melden Teilen Geschrieben 2. April 2009 mmmhhh... ich habe nach besten wissen und gewissen alle fakten auf den tisch gelegt ;) (schon in meinem eigenen interesse). Ich erhielt nach dieser abfrage eine fehlermeldung und dann habe ich es aufgegeben. aber danke nochmals für die hilfe! Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.