Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Alle neuesten Datensätze holen (https://www.delphipraxis.net/200695-alle-neuesten-datensaetze-holen.html)

Codehunter 16. Mai 2019 15:13

Datenbank: Firebird • Version: 2.5 • Zugriff über: FIBpro

Alle neuesten Datensätze holen
 
Hallo!

Ich habe eine solche Tabelle:
Delphi-Quellcode:
ID |FK_FOO|FK_FOO2|DATUM
----------------------------
1001 |1200  |2001   |12.01.2019
1002 |1201  |2001   |12.01.2019
1003 |1200  |2001   |22.11.2018
1004 |1201  |2001   |22.11.2018
1005 |1217  |2001   |02.02.2019
1006 |1200  |2002   |12.01.2019
...
Nun bräuchte ich einen Query, mit dem ich folgendes Ergebnis erhalte:
Code:
ID  |FK_FOO|FK_FOO2|DATUM
-------------------------------
1001 |1200  |2001   |12.01.2019
1002 |1201  |2001   |12.01.2019
1005 |1217  |2001   |02.02.2019
1006 |1200  |2002   |12.01.2019
...
Der Fremdschlüssel FOO soll hierbei das Gruppierungskennzeichen sein. Die Reihenfolge in der Tabelle ist sortiert nach ID, das DATUM kann völlig willkürlich sein, also nicht aufsteigend mit der Datensatznummer. Ich brauche zu jedem Wert in FK_FOO genau eine Zeile in der Ergebnismenge, nämlich genau die mit dem höchsten/neuesten Datum.

EDIT: Ich hatte den zweiten Fremdschlüssel FK_FOO2 vergessen, der ebenfalls Gruppierungskriterium sein soll. Die Kombination aus FK_FOO und FK_FOO2 darf nur einmal je Datum vorkommen.

Viele Grüße
Cody

mkinzler 16. Mai 2019 15:40

AW: Alle neuesten Datensätze holen
 
SQL-Code:
Select
  b.id,
  a.FK_FOO,
  a.DATUM
from
  (select
    FK_FOO,
    max(DATUM) as DATUM
   group by
     FK_FOO
   from <Tabelle) a
  join
    <Tabelle> b on b.FK_FOO = a.FK_FOO and b.DATUM = DATUM);

jobo 16. Mai 2019 15:48

AW: Alle neuesten Datensätze holen
 
Ja und fk_foo2 noch ananlog zu fk_foo dazu

TigerLilly 16. Mai 2019 20:50

AW: Alle neuesten Datensätze holen
 
Code:
select min(id),fk_foo, fk_foo2, max(datum) from tabelle
group by fk_foo, fk_foo2
order by 1 asc
Die Frage ist, wie ID für die Ergsbnismenge bestimmt werden soll. So wie das in den daten aussieht müsste es eigentlich noch ins group by hinein.

Codehunter 17. Mai 2019 09:27

AW: Alle neuesten Datensätze holen
 
Danke euch, läuft jetzt wie gewünscht!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 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