none
Tabelle bearbeiten RRS feed

  • Frage

  • Hallo,

    ich habe eine Tabelle wo zur 1 ArtikelNummer mehrere Einträge vorhanden sind. Der neueste Eintrag sollte eigentlich als einzigster die Spalte "archiv" auf 0 gesetzt haben. Leider ist da wohl etwas schief gegangen.

    Jetzt müsste ich jeden Artikel auf 1 setzten und nur denjenigen mit dem höchsten Wert der Spalte "ID" wieder zurück auf 0.

    Ersteres ist natürlich kein Problem, nur beim zweiten Punkt habe ich Probleme.

    Wie kann ich aus einer Tabelle von allen Artikeln nur diese ID erhalten die jeweils am größten ist? Hoffe das Problem wurde verstanden.

    Gruß Andreas Vogt


    http://www.AccessBlog.de

    Donnerstag, 31. Januar 2013 07:20

Alle Antworten

  • Ungefähr so?

    ;WITH    cte
              AS (SELECT
                    ROW_NUMBER() OVER (PARTITION BY ArtikelNummer ORDER BY ID DESC) AS rn,
                    *
                  FROM
                    Tabelle)
        UPDATE
            cte
        SET 
            ID = 0
        WHERE
            rn = 1


    -- Frank Kalis Microsoft SQL Server MVP Webmaster: http://www.insidesql.org

    Donnerstag, 31. Januar 2013 07:26
  • Hallo Frank,

    danke für die Antwort, hat mir sehr gut geholfen.

    Gruß Andreas


    http://www.AccessBlog.de

    Donnerstag, 31. Januar 2013 08:48