[Oracle8/SQL]: Order/Group/Datum Problem

Hi,
ich habe eine Tabelle, die im wesentlich nur die beiden Spalten „datum“ und „wert“ enthält. Nun möchte ich eine Abfrage machen, die …

1.) Nach Monaten gruppiert
2.) Die vollen Monatsnamen benutzt
3.) Chronologisch sortiert

Das bekomme ich irgendwie nicht hin! Es müßte ja irgendwie so gehen:

select distinct datum,
count(wert)
from tabellenName
group by to_char(datum, ‚month‘)
order by to_char(datum, ‚yy:mm‘);

Das gibt aber einen Fehler („ORA-00979: not a GROUP BY expression“). Ich verstehe im Grunde auch, WARUM der Fehler kommt, krieg’s aber trotzdem nicht hin! :frowning:

Danke für jede Hilfe,

Hendrik.

hi!

grund dafür ist, daß du ein datum selektierst, jedoch ein group-by auf einen string machst und das order by auch noch einen anderen string enthält (die selektierten UND der order-by wert MÜSSEN im group-by enthalten sein

ein möglichkeit - um auch chronoligisch richtig zu bleiben - wäre:

select to_char(datum,‚YYYY month‘),count(wert)
from tabellenName
group by to_char(datum,‚YYYY month‘)
order by 1;

grüße,
tomh

Hi,

danke für die schnelle Antwort!
Das funktioniert leider bei mir nicht:

2003 april 39
2003 februar 13
2003 januar 2
2003 juli 2
2003 juni 2
2003 mai 30
2003 märz 44

Die Sortierung ist also falsch. Allerdings habe ich es mittlerweile anders hinbekommen:

select to\_char(datum, 'month'), 
 to\_char(datum, 'YYYY.MM'),
 count(wert)
from tabellenName
group by to\_char(datum,'month'),
 to\_char(datum,'YYYY.MM'),
order by to\_char(datum,'YYYY.MM');

Trotzdem Danke!!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hi!

danke für die schnelle Antwort!
Das funktioniert leider bei mir nicht:

aaaaaaaaaaargh - ich sollte mir die ergebnisse einer abfrage auch wirklich ansehen, anstatt mich mit einem „schaut gut aus“ begnügen … sorry - aber immerhin hast du es hingebracht

grüße,
tomh