AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Alle neuesten Datensätze holen

Alle neuesten Datensätze holen

Ein Thema von Codehunter · begonnen am 16. Mai 2019 · letzter Beitrag vom 17. Mai 2019
Antwort Antwort
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
1.936 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Alle neuesten Datensätze holen

  Alt 16. Mai 2019, 14:13
Datenbank: Firebird • Version: 2.5 • Zugriff über: FIBpro
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
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (16. Mai 2019 um 14:42 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.415 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Alle neuesten Datensätze holen

  Alt 16. Mai 2019, 14:40
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);
Markus Kinzler
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.578 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Alle neuesten Datensätze holen

  Alt 16. Mai 2019, 14:48
Ja und fk_foo2 noch ananlog zu fk_foo dazu
Gruß, Jo
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
535 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Alle neuesten Datensätze holen

  Alt 16. Mai 2019, 19:50
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.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
1.936 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Alle neuesten Datensätze holen

  Alt 17. Mai 2019, 08:27
Danke euch, läuft jetzt wie gewünscht!
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf