Lfd-Nr. in Abfrage

27/01/2010 - 14:11 von Christian Pfeffer | Report spam
Hallo zusammen,

ich probiere seit 3 Tagen verschiedene Sachen aus und habe auch die donkarl
FAQ 3.11 geleden und ausprobiert, doch ich bekomme nie ein
zufriedenstellendes Ergebnis.
Meine Tabelle "Schützen" hat u.sa. ein eindeutiges Feld "ID" und ein Feld
"VereinsID".
Meine Abfrage sieht so aus:
SELECT Schützen.VereinsID, (Select Count (*) FROM [Schützen] as Temp WHERE
[Temp].[ID] < [Schützen].[ID])+1 AS Nr
FROM Schützen
WHERE (((Schützen.VereinsID)=1));

Mir wird nur leider nie die laufende Nr. angezeigt sondern nur die ID:
VereinsID Nr.
1 1
1 3
1 7
1 25

Es sollte aber so aussehen:
VereinsID Nr.
1 1
1 2
1 3
1 4

Was mache ich falsch?

Viele Grüße, Christian
 

Lesen sie die antworten

#1 Karl Donaubauer
27/01/2010 - 14:44 | Warnen spam
Christian Pfeffer wrote:
ich probiere seit 3 Tagen verschiedene Sachen aus und habe auch die
donkarl FAQ 3.11 geleden und ausprobiert, doch ich bekomme nie ein
zufriedenstellendes Ergebnis.
Meine Tabelle "Schützen" hat u.sa. ein eindeutiges Feld "ID" und ein
Feld "VereinsID".
Meine Abfrage sieht so aus:
SELECT Schützen.VereinsID, (Select Count (*) FROM [Schützen] as Temp
WHERE [Temp].[ID] < [Schützen].[ID])+1 AS Nr
FROM Schützen
WHERE (((Schützen.VereinsID)=1));

Mir wird nur leider nie die laufende Nr. angezeigt sondern nur die ID:
VereinsID Nr.
1 1
1 3
1 7
1 25

Es sollte aber so aussehen:
VereinsID Nr.
1 1
1 2
1 3
1 4

Was mache ich falsch?



Wenn es in der (àußeren) Abfrage ein WHERE-Kriterium gibt, dann
muss das auch in die Unterabfrage. Sonst beziehen sich die laufenden
Nummern auf eine andere Datenmenge als jene, die im Abfrageergebnis
sichtbar ist:

SELECT Schützen.VereinsID, (Select Count (*) FROM [Schützen] as Temp
WHERE [Temp].[ID] < [Schützen].[ID] And Temp.VereinsID=1)+1 AS Nr
FROM Schützen
WHERE Schützen.VereinsID=1;

Servus
Karl
****************
Access-FAQ: http://www.donkarl.com /// http://www.donkarl.com?NEK
.NET-Entwickler-Konferenz für Accessler 27./28.2. + 20./21.3.2010

Ähnliche fragen