Page tree
Skip to end of metadata
Go to start of metadata
  1. playground.sql einspielen
  2. Spielen gehen (wink)

Versuche mit INNER JOINS und summieren/multiplizieren aus versch. Tabellen

SELECT
    artikel.ArtID,
    Preis,
    Menge,
    SUM( Preis * Menge ) AS Gesamtpreis,
    BestID,
    KundeID
FROM artikel
INNER JOIN bestellung
    ON bestellung.ArtID = artikel.ArtID
WHERE bestellung.KundeID =1
    AND bestellung.BestID =1
GROUP BY Preis

=>

ArtID   Preis   Menge   Gesamtpreis         BestID  KundeID
2       0.2     1       0.200000002980232   1       1
3       2       2       4                   1       1
1       7.4     4       29.6000003814697    1       1

SELECT
    Preis,
    (SELECT Menge
        FROM bestellung
        WHERE bestellung.ArtID = artikel.ArtID
            AND bestellung.KundeID =1
        GROUP BY Preis
    ) AS Menge,
    SUM( Menge ) AS Gesamtmenge,
    SUM(Preis*Menge) AS Gesamtpreis
FROM artikel, bestellung
WHERE bestellung.ArtID = artikel.ArtID
    AND bestellung.KundeID =1
GROUP BY Preis

=>

Preis    Menge    Gesamtmenge    Gesamtpreis
0.2      1        1              0.200000002980232
2        2        2              4
7.4      4        9              66.6000008583069

SELECT
    Preis,
    Menge,
    SUM(Menge) AS Gesamtmenge,
    SUM(Preis*Menge) Gesamtpreis
FROM artikel
INNER JOIN bestellung
    ON bestellung.ArtID = artikel.ArtID
WHERE bestellung.KundeID=1
GROUP by Preis

=>

Preis   Menge   Gesamtmenge     Gesamtpreis
0.2     1       1               0.200000002980232
2       2       2               4
7.4     4       9               66.6000008583069

SELECT
    artikel.ArtID,
    Preis,
    SUM(Menge) Menge,
    SUM(Preis*Menge) gesamtpreis,
    BestID,
    KundeID
FROM artikel
INNER JOIN bestellung
    ON bestellung.ArtID = artikel.ArtID
WHERE bestellung.KundeID=1
GROUP by Preis

=>

ArtID   Preis   Menge   gesamtpreis         BestID  KundeID
2       0.2     1       0.200000002980232   1       1
3       2       2       4                   1       1
1       7.4     9       66.6000008583069    1       1

SELECT
    COUNT(*) AS Anzahl_Bestellungen,
    SUM(Preis*Menge) AS Gesamtwert_pro_Artikel
FROM artikel
INNER JOIN bestellung
    ON bestellung.ArtID = artikel.ArtID
WHERE bestellung.KundeID=1
GROUP by Preis

=>

Anzahl_Bestellungen     Gesamtwert_pro_Artikel
1                       0.200000002980232
1                       4
2                       66.6000008583069

des Rätsels Lösung

SELECT Sum( Preis * Menge )
FROM artikel
INNER JOIN bestellung ON bestellung.ArtID = artikel.ArtID
WHERE bestellung.KundeID =1

=>

Sum(Preis*Menge)
70.800000861287

wohingegen ohne Sum, alle Datensätze einzeln erscheinen:


SELECT 
    Preis,
    Menge
FROM artikel
INNER JOIN bestellung ON bestellung.ArtID = artikel.ArtID
WHERE bestellung.KundeID =1

=>

Preis 	Menge
7.4 	4
0.2 	1
2 	2
7.4 	5
  • No labels