SQL Abfrage - Akuellster Datensatz
Hallo zusammen,
ich bastele gerade an einer automatischen Gestellverwaltung. Dazu speichert unser ERP System alle Aktionen in einer Tabelle "Rackhistory". Beispieldaten im Anhang.
Statechange=0 zurückerhalten
Statechange=1 abgegeben
Statechange=0 Abholbereit
für die benachrichtigung muss ich mir eine Tabelle bauen. Filter auf Statechange=1 wäre ja prinzipiell richtig, aber dann erwische ich auch alle Gestelle die irgendwann mal auf abgegeben standen da die tabelle ja einen Verlauf abbildet.
Habe schon mit max(date) probiert aber ich komme da nicht vorwärts. Vielleicht kann ja jemand helfen.
Gruß jan
ich bastele gerade an einer automatischen Gestellverwaltung. Dazu speichert unser ERP System alle Aktionen in einer Tabelle "Rackhistory". Beispieldaten im Anhang.
Statechange=0 zurückerhalten
Statechange=1 abgegeben
Statechange=0 Abholbereit
für die benachrichtigung muss ich mir eine Tabelle bauen. Filter auf Statechange=1 wäre ja prinzipiell richtig, aber dann erwische ich auch alle Gestelle die irgendwann mal auf abgegeben standen da die tabelle ja einen Verlauf abbildet.
Habe schon mit max(date) probiert aber ich komme da nicht vorwärts. Vielleicht kann ja jemand helfen.
Gruß jan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 488904
Url: https://administrator.de/contentid/488904
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
4 Kommentare
Neuester Kommentar
Du willst nur den einen letzten Datensatz mit der 1?
Das ist der mit der höchsten ID Nummer oder dem letzten Datum.
order by id = reihenfolge nach id nummer
desc = anders herum, größte ID nummer zuerst
count 1 = nur den ersten Eintrag zeigen.
Das ist nur aus der Erinnerung heraus geholt, die Syntax mussst Du noch überprüfen.
Das ist der mit der höchsten ID Nummer oder dem letzten Datum.
Select * from xxxx where statechange=1 order by id desc count 1;
order by id = reihenfolge nach id nummer
desc = anders herum, größte ID nummer zuerst
count 1 = nur den ersten Eintrag zeigen.
Das ist nur aus der Erinnerung heraus geholt, die Syntax mussst Du noch überprüfen.
Zitat von @NordicMike:
Du willst nur den einen letzten Datensatz mit der 1?
Das ist der mit der höchsten ID Nummer oder dem letzten Datum.
order by id = reihenfolge nach id nummer
desc = anders herum, größte ID nummer zuerst
count 1 = nur den ersten Eintrag zeigen.
Das ist nur aus der Erinnerung heraus geholt, die Syntax mussst Du noch überprüfen.
Select top 1 * from xxxx where statechange=1 order by id desc;Du willst nur den einen letzten Datensatz mit der 1?
Das ist der mit der höchsten ID Nummer oder dem letzten Datum.
Select * from xxxx where statechange=1 order by id desc count 1;
order by id = reihenfolge nach id nummer
desc = anders herum, größte ID nummer zuerst
count 1 = nur den ersten Eintrag zeigen.
Das ist nur aus der Erinnerung heraus geholt, die Syntax mussst Du noch überprüfen.
@Jan1986 du hast in deiner Frage einen Fehler drin, bei dir haben zwei Zustände jeweils die 0 und einer eine 1, aber in der Tabelle gibt s 0,1,2