Gruppierung nach Jahr bzw. Jahr/Monat

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Winfried
Beiträge: 5
Registriert: Mi, 18.11.2009 16:10

Gruppierung nach Jahr bzw. Jahr/Monat

Beitrag von Winfried »

Hallo,
ich habe ein ältere und recht umfangreiche .ods - Tabelle in eine .odb - Tabelle umgewandelt. Die weitere Fortführung dieser Datensammlung soll künftig in der .odb - Version erfolgen. Jeder Datensatz enthält ein Datumsfeld in der Form TT MM YYYY.
Gibt es die Möglichkeit, Zusammenfassungen (Summierung, Anzahl Felder, Durchschnittswerte) von Zahlenfeldern zu erstellen und diese nach Jahren bzw. Jahren / Monaten des Datenfeldes zu gruppieren so daß in den Zahlenfeldern als Ergebnis z.B. die Summen für 2007 / 2008 / 2009 oder Summe für 01-09 / 02-09 usw. stehen ?
Mein Ansatz war, in einer Abfrage das Datumsfeld 3 x abzufragen und mit einer geeigneten Funktion ? je eines dieser Felder in die Jahreswerte und das andere in Jahres/Monatswerte umzuwandeln. Ich kann derartige Funktionen allerdings nicht finden. Die Umwandlung per Format-Befehl erlaubt wohl keine Gruppierung oder ?
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Gruppierung nach Jahr bzw. Jahr/Monat

Beitrag von Barlee »

Hallo Winfried,
mit einer geeigneten Funktion ? je eines dieser Felder in die Jahreswerte und das andere in Jahres/Monatswerte umzuwandeln.

Code: Alles auswählen

YEAR(Datumsspalte)
MONTH(Datumsspalte)
DAYOFMONTH(Datumsspalte)
Gruß Barlee
Winfried
Beiträge: 5
Registriert: Mi, 18.11.2009 16:10

Re: Gruppierung nach Jahr bzw. Jahr/Monat

Beitrag von Winfried »

Hallo Barlee,
das ging ja fix, besten Dank !

Warum habe ich das nur in der Hilfe nicht gefunden ???

Wie auch immer, habs probiert und die Umwandung des vollen Datums in Jahr bzw. Monat funktioniert.
Leider kann man aber nach den so erzeugten Feldern nicht gruppieren, bin nun also ein Stück weiter, aber noch nicht am Ziel.
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Gruppierung nach Jahr bzw. Jahr/Monat

Beitrag von Barlee »

Hallo Winfried,

warum kannst Du nicht gruppieren? Unter Einbeziehung aller Kriterien Jahr / Monat / Tag:

Code: Alles auswählen

...
GROUP BY
YEAR(Datum),
MONTH(Datum),
DAYOFMONTH(Datum)
Möchtest Du sowohl (separat) nach Jahr als auch nach Monat/Tag (z.B. 05-12) gruppieren, dann bieten sich nur einzelne Abfragen an, die Du ggf. über eine UNION verbindest
z.B.
Ausgangstabelle
Ausgangstabelle.png
Ausgangstabelle.png (4.76 KiB) 2700 mal betrachtet

Code: Alles auswählen

SELECT 
'Gruppe_Jahr' AS "Beschreibung",
TO_CHAR("Datum",'YYYY') AS "JJJJ / MM-TT",
SUM("Wert") AS "SUMME"
FROM "Tab_Timestamp"
GROUP BY
TO_CHAR("Datum",'YYYY')

UNION

SELECT 
'Gruppe Monat-Tag' AS "Beschreibung",
TO_CHAR("Datum",'DD-MM') AS "JJJJ / MM-TT",
SUM("Wert") AS "SUMME"
FROM "Tab_Timestamp"
GROUP BY
TO_CHAR("Datum",'DD-MM')
Ergebnis:
Ergebnis.png
Ergebnis.png (6.21 KiB) 2700 mal betrachtet
Vielleicht kannst Du daraus für Dich eine Lösung ableiten.
(SQL direkt ausführen muss für dieses Beispiel aktiviert sein)

Gruß Barlee
Winfried
Beiträge: 5
Registriert: Mi, 18.11.2009 16:10

Re: Gruppierung nach Jahr bzw. Jahr/Monat

Beitrag von Winfried »

Nochmals danke für Deine Unterstützung !

Ich komme aus der Access-Welt, wo ich fast ausschließlich mit den grafischen Hilfsmitteln gearbeitet habe.
Im grafischen Abfrageentwurf steht in der Spalte mit dem "Originaldatum" in der Zeile Funktion die Funktion Gruppierung zur Verfügung, in der Spalte "Month("Originaldatum")" aber nicht.

Mit SQL habe ich bislang keine Erfahrung. Ich werde versuchen, Deine Empfehlungen nachzuempfinden und werde über meine Fortschritte hier berichten.
Antworten