Announcement

Collapse
No announcement yet.

Summe ermitteln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Summe ermitteln

    Hallo,

    irgendwie stehe ich bei meiner Abfrage gerade auf dem Schlauch ...

    Folgende Tabellen:
    tbl_bestellung
    *bestellung_id
    -kunde_id


    tbl_bestellung_einzelheiten
    *id
    -anzahl
    -preisprostueck
    -liefertermin
    -bestellung_id


    tbl_kunde
    *kunde_id
    -land


    Verbinden kann ich die Tabellen wie folgt:
    tbl_bestellung.bestellung_id = tbl_bestellung_einzelheiten.bestellung_id

    tbl_bestellung.kunde_id = tbl_kunde.kundeid

    Nun würde ich gerne den Gesamtumsatz eines Jahres je Land ermitteln.

    Meine bisherige Abfrage liefert nicht das gewünschte Ergebnis ...
    Daher meine Frage: Muss ich dazu eine Unterabfrage verwenden, oder wie muss ich das ganze angehen?

    Danke für Eure Hilfe!
    Bonaqua

  • #2
    bau dir via left outer join eine abfrage zusammen. dann gruppierst du das nach den ländern und summierst das produkt aus anzahl und stückpreis auf.

    bei oracle würde ich das so schreiben:
    [highlight=sql]SELECT SUM(tbl_bestellung_einzelheiten.anzahl * tbl_bestellung_einzelheiten.preisprostueck) as umsatz, tbl_kunde.land
    FROM {oj tbl_bestellung_einzelheiten
    LEFT OUTER JOIN tbl_bestellung ON tbl_bestellung.bestellung_id = tbl_bestellung_einzelheiten.bestellung_id
    LEFT OUTER JOIN tbl_bestellung ON tbl_kunde.kunde_id = tbl_bestellung.kunde_id }
    GROUP BY tbl_kunde.land[/highlight]

    hoffe, das hilft dir

    Comment


    • #3
      @mez
      Danke für Deine Hilfe!

      Allerdings kommt bei mir (wenn ich die 2. Zeile mit LEFT OUTER JOIN teste) eine Fehlermeldung: "Not unique table/alias: tbl_bestellung"

      Wenn ich nur die erste LEFT OUTER JOIN Anweisung verwende, klappt es ohne Fehlermeldung (aber eben mit unvollständiger Abfrage)

      Comment


      • #4
        Da hat er fälschlicherweise einen Fehler bei den Tabellen denke ich mal das zweite sollte die Kundentabelle sein nicht die bestellungstabelle:

        [highlight=sql]
        SELECT SUM(tbl_bestellung_einzelheiten.anzahl * tbl_bestellung_einzelheiten.preisprostueck) AS umsatz, tbl_kunde.land
        FROM
        tbl_bestellung_einzelheiten
        LEFT OUTER JOIN tbl_bestellung ON tbl_bestellung.bestellung_id = tbl_bestellung_einzelheiten.bestellung_id
        LEFT OUTER JOIN tbl_kunde ON tbl_kunde.kunde_id = tbl_bestellung.kunde_id
        GROUP BY tbl_kunde.land
        [/highlight]

        Comment


        • #5
          Oh ja, stimmt. Danke, fanderlf. Copy-Paste Fehler

          Comment

          Working...
          X