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!
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;
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]
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