Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   select (https://www.delphipraxis.net/170791-select.html)

jangbu 3. Okt 2012 14:23

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?

weisswe 3. Okt 2012 14:40

AW: select
 
Probier mal sowas:

Code:
select nr, datum, gewicht from kfz xxx
where datum = (select max(datum) from kfz where nr = xxx.nr)
Bin zwar ein Oracle-Entwickler, aber sollte auch ähnlich in einer anderen Datenbank funktionieren!
xxx ist ein Alias.

W!!!

Furtbichler 3. Okt 2012 15:06

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:
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
Falls das aber nie vorkommt, dann ist die Lösung von weisswe schon ok.

jangbu 3. Okt 2012 15:26

AW: select
 
Hallo weisswe,

ist genau das was ich brauche, DANKE!


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz