![]() |
Datenbank: MSSQL • Version: 2000 • Zugriff über: ADO
select
Hallo zusammnen
bekomme eine Abfrage nicht hin. Unsere Fahrzeuge(nr) werden bei der Einfahrt immer verwogen (datum,gweicht). Es existieren somit zu jedem Fahrzeug beliebig viele Datensätze. Tabelle kfz: nr datum gewicht 1 01.08.2012 901 2 13.08.2012 1001 x 3 02.08.2012 707 2 10.08.2012 808 3 17.08.2012 203 1 03.08.2012 456 x 2 08.08.2012 333 x Es sollen in einer Abfrage die jeweils letzten gewichte der einzelnen Fahrzeuge abgefragt werden, also die mit x gekennzeichnet Datensätze. Ich müsste also zuerst mit distinct alle vorhandenen nr abfragen und das Ergebnis mit einem zweiten select '.. top 1 .. order by datum desc' nach dem jeweils letzten Eintrag abfragen. Also etwa so: select top 1 from (select distinct nr from kfz) x order by kfz,datum desc Das klappt aber nicht mit dem distinct, mit group by nr bekomme ich es auch nicht hin. Kann mir jemand helfen? |
AW: select
Probier mal sowas:
Code:
Bin zwar ein Oracle-Entwickler, aber sollte auch ähnlich in einer anderen Datenbank funktionieren!
select nr, datum, gewicht from kfz xxx
where datum = (select max(datum) from kfz where nr = xxx.nr) xxx ist ein Alias. W!!! |
AW: select
Blöd, wenn das Fahrzeug am letzten Tag mehrmals gewogen wurde.
So gehts dann ohne Wiederholung bei dem Sonderfall (aber etwas komplizierter).
Code:
Falls das aber nie vorkommt, dann ist die Lösung von weisswe schon ok.
select
x.Nr, x.Datum, (select Max(y.Gewicht) from Kfz y where x.Nr=y.Nr and x.Datum = y.Datum) as Gewicht from ( select Nr, max(Datum) as Datum, from Kfz group by Nr ) x |
AW: select
Hallo weisswe,
ist genau das was ich brauche, DANKE! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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