Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: accessdau am Dezember 29, 2020, 09:40:33

Titel: Laufende Nummer in SQL Abfrage
Beitrag von: accessdau am Dezember 29, 2020, 09:40:33
Guten Morgen,

ich weiß, altes Thema aber ich bekomme ein Detail nicht gebacken. Mit der bekannten Methode:

SELECT (select count (*) FROM [Tabelle] as Tab WHERE [Tab].[ID] <  [Tabelle].[ID]) +1 AS LaufNr, Zeitstempel,
FROM Tabelle

funktioniert die laufende Nummer gut. Nun möchte ich aber den Zeitstempel zusätzlich aufsteigend sortiert haben. (Mit laufender Nummer) etwa so:
1. 01.01.2020
2. 03.04.2020 etc.

füge ich ein ORDER BY Zeitstempel ein ist die Laufende Nummer durcheinander. Weiß jemand wie das geht??? VIELEN DANK!!
Titel: Re: Laufende Nummer in SQL Abfrage
Beitrag von: steffen0815 am Dezember 29, 2020, 10:49:50
Hallo,
da der Zeitstempel (datumsfeld) intern auch nur eine Zahl ist, kannst du diese zum Nummerieren nutzen.SELECT
  (SELECT COUNT (*)
   FROM [Tabelle] AS Tab
   WHERE [Tab].[zeitstempel] < [Tabelle].[zeitstempel])+1 AS LaufNr, Zeitstempel
FROM Tabelle
ORDER BY Zeitstempel;
Titel: Re: Laufende Nummer in SQL Abfrage
Beitrag von: accessdau am Dezember 29, 2020, 12:16:10

Vielen Dank für die Antwort, probiere ich aus...
Titel: Re: Laufende Nummer in SQL Abfrage
Beitrag von: accessdau am Dezember 29, 2020, 12:55:33
Zitat von: steffen0815 am Dezember 29, 2020, 10:49:50Hallo,
da der Zeitstempel (datumsfeld) intern auch nur eine Zahl ist, kannst du diese zum Nummerieren nutzen.SELECT
  (SELECT COUNT (*)
   FROM [Tabelle] AS Tab
   WHERE [Tab].[zeitstempel] < [Tabelle].[zeitstempel])+1 AS LaufNr, Zeitstempel
FROM Tabelle
ORDER BY Zeitstempel;

Hallo, auf den ersten Blick sah das gut aus. Allerdings hab ich nun vereinzelt "Sprünge" in der Laufenden Nummer. D.h. am Ende ist die Laufende Nummer gräßer als die Anzahl der Datensätze. (Wenn auch nur gering) Woran könnte das liegen??
Titel: Re: Laufende Nummer in SQL Abfrage
Beitrag von: steffen0815 am Dezember 29, 2020, 14:15:03
Hallo,
das Ganze funktioniert nur wenn der Zeitstempel eindeutig ist.
Allerdings sollten bei identischen Zeitstempel die Laufnummer kleiner als die Datensatzanzahl sein.
Titel: Re: Laufende Nummer in SQL Abfrage
Beitrag von: accessdau am Dezember 29, 2020, 16:20:35
Zitat von: steffen0815 am Dezember 29, 2020, 10:49:50Hallo,
da der Zeitstempel (datumsfeld) intern auch nur eine Zahl ist, kannst du diese zum Nummerieren nutzen.SELECT
  (SELECT COUNT (*)
   FROM [Tabelle] AS Tab
   WHERE [Tab].[zeitstempel] < [Tabelle].[zeitstempel])+1 AS LaufNr, Zeitstempel
FROM Tabelle
ORDER BY Zeitstempel;

Funktioniert, die zusätzlichen Eigenschaften in der WHERE Klausel des COUNTs waren nicht sauber in Abfrage und Unterabfrage. Vielen Dank!!!