Hallo Mulder!
Wenn jemand das gleiche Problem für Oracle löst, wäre ich daran auch sehr interessiert. :-)
Ich hab zwar schon mit
SELECT DECODE(firma,'Huber',umsatz,'') Huber,
DECODE(firma,'Mayr',umsatz,'') Mayr, ...
probiert, aber das liefert immer noch drei Zeilen der Form
Huber Mayr Müller
5000 ---- ----
---- 2000 -----
---- ---- 7000
Wenn die Spalten fixiert sind, sollte etwas in der Form funktionieren:
SELECT count(*) AS Dummy,
(SELECT sum(wert) from Umsatz where name="Müller") AS Müller,
(select sum(wert) from Umsatz where name="Huber") AS Huber,
(SELECT sum(wert) from Umsatz where name="Mayr") AS Mayr,
(SELECT sum(wert) from Umsatz) AS Gesamt
FROM Umsatz;
Wenn die Spalten erst zur Laufzeit bekannt werden, sollte die Abfrage dynamisch entstehen.
Für den Bericht - denke ich - kommt man um eine zusätzliche Programmierung dann nicht mehr herum.
In Access funktioniert die Lösung Deines Problems mit einer Kreuztabellenabfrage:
TRANSFORM Sum(Wert) AS X
SELECT null AS Dummy, Sum(Wert) AS Gesamt
FROM Umsatz
GROUP BY null
PIVOT Name;
Ich bin überzeugt, dass es da in Oracle mindestens gleichwertige Lösungen gibt.
Viele Grüße
H-P Ortner