![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: egal
RefId,date,time, Refid und höchstes Datum/Zeit ermitteln
Hallo #,
ich habe folgende Tabelle id integer (prim key, spielt hier aber keine Rolle) refid integer thedate date date Anteil thetime date time Anteil Ist also Dialekt 1. Die gleiche refid kommt mehrfach vor. Ich brauche jetzt für jede RefId das höchste theDate+theTime, das muss ja irgendwie über group by / max gehen ? Genau das ist meine Schwäche .. ;) Ein SubSelect will ich vermeiden. Danke Heiko |
Re: RefId,date,time, Refid und höchstes Datum/Zeit ermitteln
Hallo,
täte mal vermuten, dass es in dieser Art gehen müsste (habe kein Firebird zur Verfügung):
SQL-Code:
Alternative könnte auch noch dieses möglich sein:
select refid, max(thedate + thetime) As TheDateTheTime from tabelle group by refid
SQL-Code:
select refid, max(thedate) As TheDate, Max(thetime) As TheTime from tabelle group by refid
|
Re: RefId,date,time, Refid und höchstes Datum/Zeit ermitteln
Zitat:
Code:
Deine Abfrage würde nun folgendes liefern:
id date time
1 01.01.2009 03:00:00 1 02.01.2009 02:00:00 1 03.01.2009 01:00:00
Code:
Und den Datensatz gibt es so gar nicht
1 03.01.2009 03:00:00
cu Oliver |
Re: RefId,date,time, Refid und höchstes Datum/Zeit ermitteln
Hallo,
@Sir Rufo das würde doch heißen, dass im Ergebnis Spalteninhalte unterschiedlicher Zeilen gemischt werden. Das dies bei SQL der Fall ist, wäre mir neu. Meiner Meinung nach wird die Zeile aus der Tabelle gewählt, bei der zu einer RefID TheDate und TheTime die höchsten Werte haben, im Beispiel also
Code:
Zumindest SQL-Server verhält sich so.
1 03.01.2009 01:00:00
|
Re: RefId,date,time, Refid und höchstes Datum/Zeit ermitteln
Hallo Heiko,
separierte DATE und TIME Datentypen gibt es in Dialekt 3 und nicht in Dialect 1. Bist du dir sicher, dass du Dialekt 1 verwendest? Folgendes sollte eigentlich schon klappen:
SQL-Code:
select refid, max(thedate + thetime) from tabelle group by refid
Oder wenn nur ein Feld (DATE in Dialekt 1):
SQL-Code:
select refid, max(thedatetime) from tabelle group by refid
|
Re: RefId,date,time, Refid und höchstes Datum/Zeit ermitteln
Zitat:
MySQL (5.1.33) liefert genau mein vorhergesagtes Ergebnis zurück (mich hätte alles andere auch gewundert) Hast du das mal ausprobiert? btw: hier wird ein GROUP BY durchgeführt, da werden alle Zeilen zusammengefasst (die dem schlüssel von group by entsprechen) cu Oliver |
Re: RefId,date,time, Refid und höchstes Datum/Zeit ermitteln
Zitat:
|
Re: RefId,date,time, Refid und höchstes Datum/Zeit ermitteln
Hallo,
danke für die Antworten. <Thomas> ich meinte nur, dass der Datum und Zeitanteil getrennt sind (beides in DATE-Feldern). Das hätte ich mir auch knicken können, weil das Max(theDate+theTime) ja klar ist. Ich werde es mal ausprobieren. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 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 by Thomas Breitkreuz