Aufzählung im SQL-Query anhand eines Schlüsselfeldes



  • Hallo Forum,

    ich habe folgende Datenbankeinträge:

    # | p_id | q_id | a_id
    -----------------------
    1 | 23 | 79 | 10
    2 | 23 | 79 | 11
    3 | 23 | 79 | 12
    4 | 23 | 80 | 230
    5 | 23 | 80 | 231
    6 | 23 | 80 | 232

    Ich bräuchte aber nun folgende Ausgabe:

    # | p_id | q_id | a_id | order
    ------------------------------
    1 | 23 | 79 | 10 | 1
    2 | 23 | 79 | 11 | 2
    3 | 23 | 79 | 12 | 3
    4 | 23 | 80 | 230 | 1
    5 | 23 | 80 | 231 | 2
    6 | 23 | 80 | 232 | 3

    D.h., dass ich die Reihenfolge zählen will anhand der q_id-Spalte.
    Bei selber q_id wird einfach eins hochgezählt.

    Ich habe es schon mit "UNION" und "GROUP BY" versucht...hat aber nicht geklappt :-(!

    Danke für die Antworten!

    Grüße



  • Tja, SQL ist eben nicht berechnungsvollständig. Kannst Du das nicht auf App-Ebene lösen oder zur Not eine Stored Proc?



  • Ja, ich habe es jetzt in der Anwendung gelöst...

    Wäre halt ne "schönere" Lösung gewesen, wobei man "schön" sehen kann wie man will!

    Trotzdem merci!



  • würde das nicht auch so gehen:

    select ,(select count()+1 from table a where a.q_id = b.q_id and a.a_id < b.a_id) from table b order by p_id,q_id,a_id;

    diese # ist ja wahrscheinlich keine spalte, oder?
    sonst könnte man danach sortieren...

    ist ungetestet, klappts?


Anmelden zum Antworten