Zwei Möglichkeiten:
1. Du verbastelst die Monatsnamen im SELECT. Oracle kenn ich nicht, aber unter
MSSQL sieht das dann so aus:
SQL-Code:
select
case Month(Datum)
when 1 then 'Januar'
when 2 then 'Februar'
...
when 12 then 'Dezember'
end as Monat,
...
from
...
group by
case Month(Datum)
when 1 then 'Januar'
when 2 then 'Februar'
...
when 12 then 'Dezember'
end
2. Du erzeugst aus dem Monat (ist ja eine Zahl) ein Datum, z.B. '1.<Monat>.2006'. Im TChart wählst Du dann als Achsenformat 'mmm' oder so ähnlich. Ich habe dafür in
MSSQL eine UDF geschrieben und gruppiere so:
SQL-Code:
select
dbo.FirstOfMonth(Datum),
Count (*)
from
...
group by dbo.FirstOfMonth(Datum)
Diese Funktion sieht so aus (Sind eigentlich zwei):
SQL-Code:
CREATE FUNCTION [dbo].[DateOnly] (@Date DateTime)
RETURNS Datetime AS
BEGIN
Return cast (floor (cast (@Date as float)) as DateTime)
END
CREATE FUNCTION [dbo].[FirstOfMonth] (@Date DateTime)
RETURNS DateTime AS
BEGIN
Return dbo.DateOnly (dateadd (day,-datepart (day,@Date) + 1, @Date))
END
DateOnly schnippelt den Zeit-Anteil weg.
FirstOfMonth zieht vom aktuellen Datum 'Tag-1' Tage ab. Logischerweise ist das dann der 1.des Monats.