Group By und dessen Felder ...

jWaehlt

Grünschnabel
Betrifft : MS-SQL

Hallo NG.

Ich habe eine Tabelle, in der stehen á Datensatz Stundenwerte, Datum und Uhrzeit

Gruppiere ich die Tabelle anhand eines SQL-Strings mit:

Code:
SELECT     Datum, MAX(kwh) AS maxTag
FROM  Datenliste
WHERE     (Kundennummer = 'xyz') AND 
                 (Datum BETWEEN '01.03.2002' AND '31.03.2002')
GROUP BY Datum
ORDER BY MaxTag DESC

bekomme ich das Datum und dessen maximaler Tageswert zurückgeliefert. Nun benötige ich zusätzlich die Uhrzeit. Ich muß wissen, um wieviel Uhr der maximale Wert aufgetreten ist..
Gruppiere ich nach Uhrzeit und Datum, bekomme ich keinen Tagesmaximalwert zurück, sondern im obigen Beispiel, den kompletten Monat zurückgeliefert :( ...

Ich bedanke mich im voraus !

Viele Grüße,
Jens
 
Zwei Wege fallen mir ein, die Du versuchen könntest:
1. Du packst die Abfrage nach dem Maximalwert in ein Subselect und dieses Subselect ins WHERE eines übergeordneten Querys.
2. Du schreibst die Uhrzeit in dem SELECT zum Datum und Maximalwert hinzu und hängst dem ORDER BY die Uhrzeit (entweder ASC oder DESC) an. Ist aber fragwürdig, ob das funktioniert.

Gruß hpvw
 
Hallo HPVW,

danke für die Antwort. Ich habe tatsächlich die zweite vorgeschlagene Variante probiert und die Uhrzeiten zusätzlich zum Datum im Feld gespeichert. Leider funktionierte dies nicht. Auch hier bekam ich den kompletten Monat zurückgeliefert....

Viele Grüße,
Jens
 
Schreib das Query mal bitte hin. So wie ich es gemeint habe könnten alle möglichen Fehler/Fehlverhalten kommen, aber ich kann mir nicht vorstellen, dass er den ganzen Monat ausgibt.
Btw. was meinst Du mit "ganzen Monat"? Alle Zeiten und alle Tage oder nur alle Tage mit Maximalwert.
Und noch eine Frage: Warum speicherst Du das Datum nicht als DATE?
Wenn Du mal einen Dump der Tabelle postest, könnte ich das mal lokal probieren.

Gruß hpvw
 
Zurück