Mit Abfrage Abteilungen nach Jahr und Monat gruppieren

ronin269

Benutzer
Beiträge
7
Hallo an alle,

ich habe ein weiteres Problem.

Ich habe in einer Firebirddatenbank alle Belege.

Nun haben wir 3 Abteilungen und für jede Abteilung ein Datum mit Auftragswert. Also kann in einem Auftrag nur 1 Datum stehen oder zwei oder 3 Felder ausgefüllt sein.

Bsp:

Daten.jpg
Ich möchte nun alle 3 Abteilungen nach Monat und Jahr gruppieren

also z.B.:
Überschrift Umsatz Abt A Umsatz AbtB Umsatz Abt C
Juli 2014
August 2014
...

Hat jemand eine Idee
 
Werbung:
Bin mir nicht sicher, ob Firebird diese Abfrage versteht, aber mal so als Peilung:

Code:
test=*# select * from ronin ;
 beleg  | a_wert |  a_date  | b_wert | b_date | c_wert |  c_date
--------+--------+------------+--------+--------+--------+------------
 129335 |  1250 | 2014-07-24 |  0 |  |  5223 | 2014-06-30
 129336 |  0 |  |  0 |  |  7873 | 2014-07-08
(2 Zeilen)

test=*# select 'Juni 2014', sum(a_wert) filter (where extract(month from a_date) = 6), sum(b_wert) filter (where extract(month from b_date) = 6), sum(c_wert) filter(where extract(month from c_date)=6) from ronin group by 1 union all select 'Juli 2014', sum(a_wert) filter (where extract(month from a_date) = 7), sum(b_wert) filter (where extract(month from b_date) = 7), sum(c_wert) filter(where extract(month from c_date)=7) from ronin group by 1 union all select 'August 2014', sum(a_wert) filter (where extract(month from a_date) = 8), sum(b_wert) filter (where extract(month from b_date) = 8), sum(c_wert) filter(where extract(month from c_date)=8) from ronin group by 1;
  ?column?  | sum  | sum | sum
-------------+------+-----+------
 Juni 2014  |  |  | 5223
 Juli 2014  | 1250 |  | 7873
 August 2014 |  |  |
(3 Zeilen)
 
mit sum(case when ...) das klappt.

Ich möchte aber, wenn es gehen würde, nicht jede Zeile einzel abfragen. Ich würde gern einen Zeitraum angeben.
 
Werbung:
Das ist von einer Firma vor vielen Jahren erstellt worden. Bei einer Änderung müssen sehr viele Abfragen, Statistiken... angepasst werden.

Trotzdem Danke für deine Hilfe.
 
Zurück
Oben