# [MS-SQL Server] Aggregatfunktion MAX(SUM(xyz)) as mWert



## jWaehlt (26. Juni 2006)

Hallo, sitze hier vor einem größerem Problem.

Ich habe eine Tabelle, in der je Spalte ein Wert steht, angeführt von Datum und Uhrzeit. Für jeden Tag existieren 24 Spalten. Nun möchte ich das Tagesmaximal ermitteln.

Die Gruppierung der Tagessummen klappt mit der Anweisung

```
Select Datum, SUM(xyz) as sWert From dbTabelle Group By Datum Order By Datum
```
wunderbar. Ich erhalte nun eine Tabelle, in der alle Tage untereinanderstehen, sortiert nach Datum. 

Nun möchte ich aber daraus den maximalen Wert ermitteln - mit der Verschachtelung der Aggregatfunktion MAX(SUM... klappt das leider nicht mehr. Nun experimentierte ich mit VIEWS - daraus lässt sich nun der Maximalwert ermitteln - nur scheint es mir sehr umständlich. Vielleicht kann mir jemand mitteilen, wie es noch viel einfacher geht... 

Ich bedanke mich im voraus für Eure Hilfe 


Viele Grüße,
Jens


----------



## Sven Mintel (26. Juni 2006)

hast du es schon so probiert:?

```
Select Datum, SUM(xyz) as sWert From dbTabelle Group By Datum Order By SUM(xyz) DESC Limit 1
```
...vielleicht habe ich aber auch falsch verstanden, was du willst :-(


----------



## jWaehlt (26. Juni 2006)

Hi Sven. Vielleicht habe ich auch mein Problem unverständlich beschrieben... 

In der Tabelle stehen für jeden Tag und jede Stunde Werte. Diese lassen sich mit der Sum-Funktion und gruppiert nach dem Datum als Tagessummen darstellen. Nun möchte ich aber den maximalen Wert aller Tagessummen ermitteln. 

Vielleicht kann die folgende generierte Liste weiterhelfen, um mich besser zu verstehen  

Datum          Uhrzeit             Wert
-------------------------------------------------------
01.06.2006     00:00             23,21   
01.06.2006     01:00             12,11   
.                                                        
.                                                        
.                                                   
01.06.2006     23:00              3,22   
02.06.2006     00:00             12,33        <-   nächster Tag


----------



## Sven Mintel (26. Juni 2006)

Ich weiss nicht, ob es das bei MSSQL auch gibt, aber in MySQL könntest du gruppieren/sortieren anhand von  *TO_DAYS(datum)*

Verbunden mit meinem ersten Vorschlag sollte dies das gewünschte Ergebnis bringen....


----------



## jWaehlt (26. Juni 2006)

Hi Sven !

Ein fettes Danke für Deine Hilfe. Das ist die Lösung ! Somit hätte ich auch ein weiters Problem behoben, die Tagesummen auf-oder absteigend darzustellen. 

Danke Dir nochmals - Du hast mir stundenlanges Grübeln erspart    Zwar erscheint eine Fehlermeldung bei dem Befehl Limit - vielleicht wird das nicht unterstützt - aber mit Deiner Lösung kann ich sehr gut leben ;-) 

Viele Grüße,
Jens


----------

