Gruppierung mehrerer Attribute Summierung von Preis

bennemann8

Benutzer
Beiträge
6
Hallo zusamnen,
folgendes Problem führt bei mir zu Verständnisprobleme, weshalb ich nicht weiterkomme.
Ich habe 4 Tabellen (Kunde, Bestellung, enthaelt, Getraenk).
Meine Aufgabe ist es eine View zu erstellen, die mir alle offenen Bestellungen anzeigt - mit Datum/Bestellnummer/KundenID/EMail/Gesamtpreis.
Hier der sql-Dump: Pastebin
meine Idee war erstmal sowas wie das hier:
SQL:
SELECT
    kunde.email,
    enthaelt.bestellnummer,
    enthaelt.kundenid,
    (
    enthaelt.menge * ( SELECT preis FROM getraenk WHERE getraenk.markenname = enthaelt.markenname )) AS Gesamtsumme 
FROM
    enthaelt
    NATURAL JOIN kunde
    NATURAL JOIN bestellung 
WHERE
    bestellung.lieferstatus = 'Eingegangen'
jetzt müsste ich das ganze noch gruppieren nach bestellnummer und kundenid, was allerdings zu einem Fehler führt. Ich soll die Attribute in eine Aggregatfunktion verwenden. Dann hab ich es nochmal mit nem Join probiert, aber da komm ich auch nicht mit weiter...
SQL:
SELECT
    datum,
    kundenid,
    A.bestellnummer,
    email,
    summe 
FROM
    ( kunde NATURAL INNER JOIN bestellung WHERE lieferstatus = 'Eingegangen' AS B )
    AS A NATURAL INNER JOIN ( SELECT kundenid, bestellnummer, SUM ( preis * menge ) AS summe FROM enthaelt NATURAL INNER JOIN getraenk ) AS C 
GROUP BY
    ( datum, kundenid, bestellnummer, email ) 
ORDER BY
    summe DESC
Mit dem sql-Dump sollte am Ende bswp. für die Bestellung 0, vom Kunden 7 der Datensatz
Code:
datum|kunde|bestellung|email|Gesamtpreis
31.12.16|7|0|www@wald.de|11.3
herauskommen

Danke schonmal für eure Hilfe..
Gruß
Jakob
 
Werbung:
Code:
test=*# SELECT
  bestellung.datum,
  kunde.email,
  enthaelt.bestellnummer,
  enthaelt.kundenid,
  sum(
  enthaelt.menge * ( SELECT preis FROM getraenk WHERE getraenk.markenname = enthaelt.markenname )) AS Gesamtsumme
FROM
  enthaelt
  NATURAL JOIN kunde
  NATURAL JOIN bestellung
WHERE
  bestellung.lieferstatus = 'Eingegangen'
GROUP BY
  bestellung.datum,
  kunde.email,
  enthaelt.bestellnummer,
  enthaelt.kundenid;
  datum  |  email  | bestellnummer | kundenid | gesamtsumme
------------+-------------------------------------+---------------+----------+-------------
 2016-12-31 | www@wald.de  |  0 |  7 |  11.30
 2017-05-29 | geschaeftsfuehrung@steinundatom.com |  1 |  1 |  4.80
 2017-05-05 | soerenzwing@wwu.de  |  0 |  27 |  55.20
 2017-06-16 | soerenzwing@wwu.de  |  1 |  27 |  19.20
(4 Zeilen)

test=*#

So vielleicht?
 
Werbung:
Zurück
Oben