![]() |
Datenbank: MS SQL Server • Version: 2008 • Zugriff über: ADO
Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Hallo!
Ich hatte mal eine Tabelle mit über 10.000 Datensätze. Im Laufe der Zeit wurden fast allen Datensätzen Änderungen hinzugefügt. Bei jeder Änderung wurde ein neuer Datensatz mit den aktuellen Daten und dem selben ID hinzugefügt, damit man die Änderungen später nachverfolgen kann. Wie muss ich mein SELECT erweitern, um jeweils die aktuellste Version von jedem Datensatz zu erhalten? |
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Ist es notwendig immer einen neuen Datensatz bei einer Änderung zu speichern?
Wieso kein Timestamp, bei einem Update? |
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
SQL-Code:
Ungetestet. Ansonsten mal im Forum suchen, diese Frage hatten wir schon öfter.
SELECT
ID, Feld1, Feld2, Datum FROM Tabelle A WHERE Datum = ( SELECT MAX(Datum) FROM Tabelle WHERE ID = A.ID) |
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Code:
"TOP" entspricht dem "LIMIT" in anderen SQL-Dialekten:
SELECT TOP 1 ID, Feld1, Feld2, Datum FROM Tabelle ORDER BY Datum DESC
Code:
SELECT ID, Feld1, Feld2, Datum FROM Tabelle ORDER BY Datum DESC LIMIT 1
|
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Dabei kommt aber nur 1 Datensatz heraus.
|
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
[DP]"TOP" entspricht dem "LIMIT" in anderen SQL-Dialekten[/DP]
jein, Top bildet/deckt nur einen Teilaspekt von Limit, Rows und Co. ab |
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Hallo,
so sollte es gehen:
SQL-Code:
SELECT
ID, Feld1, Feld2, MAX(Datum) FROM Tabelle GROUP BY ID, Feld1, Feld2 |
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Dabei können aber wieder mehrere Datensätze je ID gelistet werden.
|
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Zitat:
|
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Kann das sein, dass bei einem komplexeren WHERE und dem Code von DeddyH am Ende trotzdem mehere Datensätze zu einem ID geliefert werden?
|
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Zitat:
|
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Wrap es im zwifelsfalle
SQL-Code:
Select * from
( SELECT ID, Feld1, Feld2, Datum FROM Tabelle A WHERE Datum = ( SELECT MAX(Datum) FROM Tabelle WHERE ID = A.ID) ) where was auch immer |
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Zitat:
|
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
sorry, fehlte was
umindest SQL-Server funtioniert so Ansonaten eine Sicht für den inneren teil bauen
SQL-Code:
Select * from
( SELECT ID, Feld1, Feld2, Datum FROM TabelleA a WHERE Datum = ( SELECT MAX(Datum) FROM Tabellea WHERE ID = A.ID) ) a where ID=1 |
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Verstehe ich nicht ganz. Und was sind diese A a?
|
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Zitat:
Zitat:
|
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Danke!
Aber in diesem Fall werden gleich zwei SELECT-Abfragen ausgeführt, was deutlich langsamer ist. Gibt es eine bessere Variante? |
AW: Anfängerfrage: Datesätze mit dem spätmöglichsten Datum finden???
Pack es in eine SP
Btw.: Sei doch froh ein Lösung zu haben |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz