1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
1294
1294
EMPFEHLEN
-
Hallo Forum,
ich benötige einen Tip zu TSQL. Folgendes Problem:
Select Kundenname, Datum, KZ1, KZ2
from Kundentabelle
order by Kundenname, Datum
ERGEBNIS:
Braun, 20091101, A, X
Braun, 20091202, A, B
Schmitz, 20090315, B, C
Schmitz, 20090502, A, F
Schmitz, 20090502, A, X
Schmitz, 20090502, A, Y
.
.
.
Wie muss das SQL-Statement aussehen damit ich nur einen der jüngsten Einträge eines Kunden bekomme unabhängig davon womit die Spalten KZ1 und KZ2 gefüllt sind.
SOLLERGEBNIS
Braun, 20091202, A, B
Schmitz, 20090502, A, Y
.
.
.
Wobei, welcher der 3 Datumsgleichen 'Schmitz' - Datensätze aus dem Beispiel im Ergebnis erscheint ist unerheblich, wichtig ist das nur einer erscheint.
Wäre für nen Tip dankbar.
PeterEGeändert von PeterE (02.03.10 um 09:51 Uhr)
-
Versuchs mal mit
Code :1
Select TOP(1) Kundennr, Datum, KZ1, KZ2 from Kundentabelle order by Datum DESC
"Wenn Sie mich suchen, ich halte mich in der Nähe des Wahnsinns auf, genauer gesagt auf der schmalen Linie zwischen Wahnsinn und Panik, gleich um die Ecke von Todesangst, nicht weit weg von Irrwitz und Idiotie!"
-- Bernd das Brot
-
Moin!
Beispielsweise so (sofern Kundennr den Datensatz eindeutig identifziert):
Code :1 2
Select a.Kundennr, a.Datum, a.KZ1, a.KZ2 from Kundentabelle a where a.Datum = (select max(b.Datum) from Kundentabelle b where a.Kundennr = b.Kundennr)order by Kundennr, Datum
Grüße!
-
-
-
Ah sorry,
war ein bisschen falsch formuliert meinerseits. Nochmal neu gesagt, wenn du nur den neusten Eintrag eines eines Kunden haben möchtest, dann sollte mein Beispiel schon passen..
Grüße!
-
Habe das Beispiel nochmal angepasst. Leider gibt es auch Datensätze mit gleichem Datum je Kunde ist mir vorher nicht aufgefallen. Sorry
-
So,
was besseres fehlt mir nun auch gerade nicht ein:
Code :1 2
Select a.Kundennr, a.Datum from Kundentabelle a where a.Datum = (select max(b.Datum) from Kundentabelle b where a.Kundennr = b.Kundennr) group by a.Kundennr, a.Datum order by Kundennr, Datum
Grüße!
-
Danke erstmal für die schnelle Hilfe.
Das Beispiel funktioniert solang ich nicht die Spalten KZ1 und KZ2 hinzunehme, dann bekomm ich wieder zu jedem unterschiedlichem Eintrag in KZ1 und KZ2 einen Datensatz (3 x 'Schmitz')
Gruß
-
08.03.10 18:44 #10
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
schau mal hier:
Code sql:1 2 3 4
SELECT a.* FROM Kundentabelle a LEFT JOIN Kundentabelle b ON a.kundenname = b.kundenname AND a.datum < b.datum WHERE b.datum IS NULL;
siehe auch:
http://www.tutorials.de/forum/relati...arstellen.html
für Schmitz gibt es aber keinen eindeutigen neuesten Wert (oder ist das für dich der letzte eingefügte Wert nach der natürlichen Ordnung in der Tabelle?)
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Hallo Tom,
Dank für die Antwort. Dein Beispiel kannte ich schon. Habe es mal umgesetzt, Das Ergebnis
Braun 20091202 A B
Schmitz 20090502 A F
Schmitz 20090502 A X
Schmitz 20090502 A Y
Es wäre aber wichtig das nur ein Schmitz erscheint, welcher ist egal, die anderen Informationen sind zweitrangig müssen aber trotzdem mitgeführt werden.
Gruß
Ähnliche Themen
-
Letzten Wert aus einer Gruppe (group by) auslesen
Von incubus77 im Forum Relationale DatenbanksystemeAntworten: 8Letzter Beitrag: 10.12.09, 15:34 -
Letzten Eintrag in einer Gruppe anzeigen (GROUP BY)
Von exxe im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 30.03.06, 18:14 -
Letzten Datensatz auslesen
Von Hektik im Forum PHPAntworten: 2Letzter Beitrag: 19.02.06, 23:19 -
PHP/MySQL: Sortierung innerhalb einer Datensatz-Gruppe
Von 27apricot im Forum PHPAntworten: 2Letzter Beitrag: 03.05.05, 10:23 -
Zugriff auf den letzten Datensatz einer Tabelle
Von Maximus im Forum Relationale DatenbanksystemeAntworten: 8Letzter Beitrag: 02.08.01, 09:46





Zitieren

Login





