Announcement

Collapse
No announcement yet.

Feld mit UPDATE nummerieren

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

  • Feld mit UPDATE nummerieren

    Hallo an alle,

    ich habe folgendes Problem: ich habe eine Tabelle in welcher bei einer Auswahl von Datensätzen in ein Feld eine fortlaufende Nummer eingetragen werden soll. Die Startnummer ist beim Eintragen immer die MAX()+1. Unverständlich? Hier meine Tabelle:

    Code:
     
    ID |Text  |Bedingung |lfdNr
    ----------------------------------
      1|bla   |E-Mail    | 15001
      2|blub  |Fax       | 1
      3|rrr   |Post      | 2
      4|in    |E-Mail    | 15002
      7|blä   |Bote      | 3
      8|hu    |E-Mail    |
     10|text  |Notiz     |
     11|sons  |E-Mail    |
    Ich muss nun im Feld lfdNr die E-Mails durchnummerieren. Für die ID 8 15003 und so weiter. Ist das über ein Update auf dem SQL-Server (Version 2008) oder nur in einer Schleife möglich?

    Vielen Dank im Voraus
    Helge

  • #2
    Ja, das könnte möglich sein, brauchst Du eine bestimmte Reihenfolge?
    Was spricht gegen einen Cursor?
    Gruß, defo

    Comment


    • #3
      [HIGHLIGHT=SQL]UPDATE MyTable
      SET MyTable.lfdNr = calculated.lfdNr
      FROM (SELECT ID, ROW_NUMBER() OVER(PARTITION BY Bedingung ORDER BY ID) + (select max(lfdNr) from MyTable where Bedingung = 'E-Mail') as lfdNr FROM MyTable
      WHERE Bedingung = 'E-Mail'
      AND lfdNr is null) calculated
      WHERE calculated.ID = MyTable.ID
      [/HIGHLIGHT]

      Comment


      • #4
        Hallo Ralf,

        vielen Dank für die schnelle Antwort. Ich werde es gleich morgen früh ausprobieren und hier antworten.

        Gruß Helge

        Comment


        • #5
          Hallo Ralf,

          Danke für die Lösung meines Problems. Es hat funktioniert.

          Viele Grüße
          Helge

          Comment

          Working...
          X