Rantanplan: Frage zu einem Access Bericht

Hallo!

Ich habe noch nicht viel Erfahrung mit Access und speziell mit Berichten.

Zu aller erst sage ich mal, was ich habe:
Eine Abfrage die mir alle Einträge dieses Monats rausholt.

Diese Abfrage möchte ich jetzt in einem Bericht haben, und im Bericht selbst, möchte ich gerne von der Spalte Umsatz einen Gesamtumsatz haben.

Das heißt es gibt zB 3 Einträge in meiner Abfrage

Firma Umsatz
Fa. Huber 5000
Fa. Mayr 2000
Fa. Müller 7500

Im Bericht möchte ich es gerne so haben:
Fa. Huber Fa. Mayr Fa. Müller Gesamt
5000 2000 7000 14000

----------

Die Gesamtsumme habe ich in der Abfrage nicht errechnet, kann ich mir das im Bericht noch irgendwie errechnen?
Wenn ja, wie geht das?

Bzw. habe ich auch schon das Problem, wenn ich den Bericht so anordnen möchte wie von mir oben beschrieben, ich bekomme nur die Anordung hin, wie von mir ganz oben skizziert.

Wär echt toll, wenn mir jemand einen Tipp geben könnte.

Machts gut und noch ein schönes WE!

Innuendo

  1. Firma Umsatz
    Fa. Huber 5000
    Fa. Mayr 2000
    Fa. Müller 7500

    Im Bericht möchte ich es gerne so haben:
    Fa. Huber Fa. Mayr Fa. Müller Gesamt
    5000 2000 7000 14000

    Wenn jemand das gleiche Problem für Oracle löst, wäre ich daran auch sehr interessiert. :-)
    (Die Summe am Ende brauch ich nicht.)

    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

    1. 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

      1. 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;

        Jo, das klappt für Zahlenwerte. Sorry, ich hätte genauer sein müssen; in meinem Fall stehen in den Spalten Strings:

        UserID Frage1 Frage2 Frage3

        abcdef blablub ----- -----
        abcdef ------ fluppl -----
        abcdef ------ ----- schwurbel

        1. H a l l o  Mulder!

          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;

          Jo, das klappt für Zahlenwerte. Sorry, ich hätte genauer sein müssen; in meinem Fall stehen in den Spalten Strings:

          UserID Frage1 Frage2 Frage3

          abcdef blablub ----- -----
          abcdef ------ fluppl -----
          abcdef ------ ----- schwurbel

          Da würde ich es so lösen:

          SELECT UserID as User,
            (select max(Antwort) from Befragung B1 where B1.UserID = B.UserID and Frage = 1) as Frage1,
            (select max(Antwort) from Befragung B2 where B2.UserID = B.UserID and Frage = 2) as Frage2,
            (select max(Antwort) from Befragung B3 where B3.UserID = B.UserID and Frage = 3) as Frage3
          FROM Befragung B
          GROUP By UserID;

          V i e l e   G r ü ß e

          H-P Ortner