Announcement

Collapse
No announcement yet.

Fortlaufender Zähler über eine Gruppe

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

  • Fortlaufender Zähler über eine Gruppe

    Hallo,
    weiß jemand wie man einen fortlaufenden Zähler über eine Gruppe erzeugt?

    Tabelle:

    Teilenummer Lieferant

    A 1

    A 2

    A 3

    B 8

    B 9

    C 12

    C 13



    Ergebnis:

    Teilenummer Lieferant Zähler

    A 1 1

    A 2 2

    A 3 3

    B 8 1

    B 9 2

    C 12 1

    C 13 2



    Die Datensätze sind bereits in der richtigen Reihenfolge nach Teilenummern sortiert und es existiert auch noch ein Feld eines zusammengesetzten eindeutigen Schlüssels.

    Gruß

    Gerald

  • #2
    Hallo Gerald,

    die gesuchte Funktion heisst RANK()

    Beispiel:

    [highlight=SQL]CREATE TABLE #Dummy
    (Teil char(1),
    Lief smallint);
    GO

    INSERT INTO #Dummy VALUES ('A', 1);
    INSERT INTO #Dummy VALUES ('A', 2);
    INSERT INTO #Dummy VALUES ('A', 3);
    INSERT INTO #Dummy VALUES ('B', 8);
    INSERT INTO #Dummy VALUES ('B', 9);
    INSERT INTO #Dummy VALUES ('C', 12);
    INSERT INTO #Dummy VALUES ('C', 13);

    SELECT Teil, Lief,
    RANK() OVER (PARTITION BY Teil ORDER BY Teil, Lief)
    FROM #Dummy
    ORDER BY Teil, Lief
    GO

    DROP TABLE #Dummy[/highlight]

    Ergebnis:
    [highlight=code]Teil Lief
    ---- ------ --------------------
    A 1 1
    A 2 2
    A 3 3
    B 8 1
    B 9 2
    C 12 1
    C 13 2[/highlight]

    Die Datensätze sind bereits in der richtigen Reihenfolge nach Teilenummern sortiert
    Daten sind nie sortiert, nur Selektionsergebnisse.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Hallo Olaf,
      vielen vielen Dank. Das wars.

      Gruß
      Gerald

      Comment

      Working...
      X