Announcement

Collapse
No announcement yet.

Update und Select verbinden?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Update und Select verbinden?

    Hallo,
    ich möchte in einer Datei mit Select doppelte Datensätze suchen
    und in diesen anschliessend mit Update ein Tabellenfeld mit 'G' kennzeichnen.
    Hier die einzelnen Kommandos

    (SELECT * FROM dez1.wliste
    GROUP BY LName, Lpartei, Lort HAVING COUNT(*) > 1)

    UPDATE dez1.wliste SET LMerk = 'G';

    wie kann ich die beiden Befehle miteinander verknüpfen.

  • #2
    Hallo,

    ich weiß nicht genau was du als "verknüpfen" verstehst, aber du kannst natürlich das SELECT-Statement als Bedingung für das UPDATE verwenden.

    [highlight=sql]
    UPDATE dez1.wliste utab SET
    LMerk = 'G'
    where exists (
    SELECT 'X' FROM dez1.wliste stab
    where stab.LName = utab.LName
    and stab.Lpartei = utab.Lpartei
    and stab.Lort = utab.Lort
    group by 'X'
    HAVING COUNT(*) > 1
    )
    [/highlight]

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo,
      habs so mal probiert :

      UPDATE dez1.wliste utab SET LMerk = 'G'
      WHERE EXISTS ( SELECT * FROM dez1.wliste stab WHERE stab.LName = utab.LName AND stab.Lpartei = utab.Lpartei
      AND stab.Lort = utab.Lort GROUP BY stab.Lname, stab.Lpartei, stab.Lort HAVING COUNT(*) > 1)

      erhalte aber folgende Fehlermeldung:
      You can't specify target table 'utab' for update in FROM clause

      Hab ich da noch was falsch gemacht?

      Karl-Heinz

      Comment


      • #4
        Hallo,

        Ja stimmt, ist ja diesselbe Tabelle .
        Dann gehts nur in zwei Schritten:
        1. Ergebnis des Select in eine temporäre Tabelle schreiben
        2. temporäre Tabelle für das Update benutzen

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment

        Working...
        X