2017-05-29 7 views
0

Hallo Ich habe eine Tabelle unten;Erneute Indizierung doppelte Zeilen

ID length 
1 1050 
1 1000 
1 900 
1 600 
2 545 
2 434 
3 45 
3 7 
4 5 

Ich brauche einen SQL-Code der unten stehenden Tabelle zu reindexing die gleiche ID nach ansteigender Reihenfolge der Länge

ID IDK length 
1 1 1050 
1 2 1000 
1 3 900 
1 4 600 
2 1 545 
2 2 434 
3 1 45 
3 2 7 
4 1 5 

IDK die neue Spalte zu machen. Vielen Dank

Antwort

2

Dies ist ein Schmerz in MS Access. Hier ist eine Möglichkeit, eine korrelierte Unterabfrage.

select t.*, 
     (select count(*) 
     from foo as t2 
     where t2.id = t.id and t2.length >= t.length 
     ) as idk 
from foo as t; 
+0

Danke @Gordon Linoff ich den Tabellennamen als foo select foo ändern *, (select count (*) von foo als t2 wo t2.id = t1.id und t2.length> = t1.length ) als idk von foo; aber alle IDK Ergebnisse 0 – Sero

+0

select foo. *, (select count (*) von foo als t2 wo t2.ID = foo.ID und t2.length> = foo.length ) als IDK aus foo; der Code funktioniert. aber wie kann ich die Tabelle nach der absteigenden Reihenfolge der Länge innerhalb der gleichen ID sortieren – Sero