SQL aktuellste Datensätze anzeigen

DukeArcane81

Cadet 4th Year
Registriert
Sep. 2010
Beiträge
103
Hallo liebe CB'ler!

Folgendes Problem:
Ich habe eine Tabelle "VERKAUFSSCHICHT" in welcher sich die Spalten BORDRECHNERNUMMER, ENDEDATUM und SCHICHTNUMMER befinden.

Nun haben alle Bordrechner viele Schichten mit fortlaufender Schichtnummer. Mein Ziel ist nun, dass ich je Bordrechner nur die letzte Schicht mit dazugehörigem ENDEDATUM angezeigt bekomme.

Mein bisheriger Code gibt mir nur den Bordrechner mit der höchsten Schichtnummer aus:

Code:
select VERKAUFSSCHICHT.VKSCHICH_BORDRECHNERNUMMER
     , VERKAUFSSCHICHT.VKSCHICH_ENDEDATUM 
     , VERKAUFSSCHICHT.VKSCHICH_ABRECHNUNGSNUMMER
from VERKAUFSSCHICHT
where VERKAUFSSCHICHT.VKSCHICH_ABRECHNUNGSNUMMER = (select max(VERKAUFSSCHICHT.VKSCHICH_ABRECHNUNGSNUMMER) from VERKAUFSSCHICHT);
 
Hi,

MAX(VERKAUFSSCHICHT.VKSCHICH_ABRECHNUNGSNUMMER) liefert dir natürlich immer die höchste Nummer. Die letzte Schicht wäre wohl die mit dem aktuellsten Datum oder?

Oder was genau ist das Merkmal von

nur die letzte Schicht

nach dem man suchen kann? Höchstes Datum? Höchste ID? Wie erkennt man die "letzte Schicht"?

VG,
Mad
 
Das problem am höchsten datum ist, dass manche Verkäufer versehentlich ein falsches Datum eingegeben haben (zb: 1.1.2018). Da jedoch die Schichtnummer immer fortlaufend ist und quasi der Primärschlüssel der Tabelle ist, gehe ich mal davon aus, dass die höchste Schichtnummer auch die letzte Schichtnummer ist.
 
Man könnte sich auch schlicht den jeweils aktuellen Eintrag in einer separaten Tabelle merken ...
 
Hi,

und warum fragst du dann nicht einfach nach der höchsten Schichtnummer? Ich verstehe dein Problem nicht.

Geht es darum, dass du so nur EINEN Datensatz erhältst? Ist das das eigentliche Problem? Und du möchstest den mit der höchsten Schichtnummer für JEDEN Rechner?

VG,
Mad
 
genau mad1209!

ich benötige für jeden bordrechner das datum des letzten logins.
 
Jetzt plötzlich heißt es "des letzten Logins"... oO

Ich werde eigentlich mit jedem Post nur verwirrter...
 
sorry für die verwirrung...

ziel ist es, das datum der letzten schicht rauszufinden. und dies für jeden einzelnen bordrechner.

unter "letztem login" meinte ich natürlich das datum der letzten verkaufsschicht.
 
Hallo,
meinst du folgendes:

Code:
select a.VKSCHICH_BORDRECHNERNUMMER
     , a.VKSCHICH_ENDEDATUM 
     , a.VKSCHICH_ABRECHNUNGSNUMMER
from VERKAUFSSCHICHT                       a
join (select VKSCHICH_BORDRECHNERNUMMER,
             max(VKSCHICH_ABRECHNUNGSNUMMER) as MaxNr 
      from VERKAUFSSCHICHT
      group by VKSCHICH_BORDRECHNERNUMMER) b on b.VKSCHICH_BORDRECHNERNUMMER = a.VKSCHICH_BORDRECHNERNUMMER and b.MaxNr = a.VKSCHICH_ABRECHNUNGSNUMMER

FrankR
 
Zurück
Oben