Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Gruppennummerierung mit Abfrage

Begonnen von Sainfeld, März 04, 2013, 23:50:27

⏪ vorheriges - nächstes ⏩

Sainfeld

Hallo,

Ich habe folgendes Problem:

Ich habe eine Liste:

ID | Name |Version|

1   |  Bernd|   1      |
2   |  Klaus |   2      |
3   |  Klaus |   2      |
4   |  Klaus |   4      |
5   |  Klaus |   4      |
6   |  Klaus |   4      |
7   |  Bernd|   2      |
8   |  Bernd|   2      |
9   |  Heinz|   1      |
10 |  Klaus|   3      |
11 |  Klaus|   3      |


Nun möchte ich die Spalten [Name] und [Version] in der Reihenfolge der [ID] per Abfrage nummerieren:


ID | Name |Version|Num]

1   |  Bernd|   1      |   1   |
2   |  Klaus |   2      |   2   |
3   |  Klaus |   2      |   2   |
4   |  Klaus |   4      |   3   |
5   |  Klaus |   4      |   3   |
6   |  Klaus |   4      |   3   |
7   |  Bernd|   2      |   4   |
8   |  Bernd|   2      |   4   |
9   |  Heinz|   1      |    5  |
10 |  Klaus|   3      |    6   |
11 |  Klaus|   3      |    6   |


Kann mir da bitte jemand helfen, ich krieg es nicht hin.   :-\


Beste Grüße

Bernd

ebs17

Man kann es sich auch schwer machen mit einer etwas verqueren Aufgabenstellung, und bei ein paar mehr Daten solltest Du keine Wunderdinge von der Performance erwarten:
SELECT
    T.ID,
    T.Name,
    T.Version,
    Q.Num
FROM
    tblP AS T
        INNER JOIN
            (
                SELECT
                    A.Name,
                    A.Version,
                    (
                        SELECT
                            Count(*)
                        FROM
                            (
                                SELECT
                                    Min(ID) AS MinID,
                                    Name,
                                    Version
                                FROM
                                    tblP
                                GROUP BY
                                    Name,
                                    Version
                            ) AS B
WHERE
    B.MinID < A.MinID) + 1 AS Num
FROM
    (
        SELECT
            Min(ID) AS MinID,
            Name,
            Version
        FROM
            tblP
        GROUP BY
            Name,
            Version
    ) AS A) AS Q
    ON
        (T.Version = Q.Version)
            AND
        (T.Name = Q.Name)


MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard

Sainfeld