Laden...

Tabelle mit 2 weiteren Zusammenführen, Werte gleicher ID addieren

Erstellt von echdeneth vor 3 Jahren Letzter Beitrag vor 3 Jahren 870 Views
echdeneth Themenstarter:in
161 Beiträge seit 2019
vor 3 Jahren
Tabelle mit 2 weiteren Zusammenführen, Werte gleicher ID addieren

verwendetes Datenbanksystem: <MySQL>

Moin und Gesundheit,

die Tabelle "Artikelliste" soll mit "Be_Artikel" und "So-Artikel" per JOIN zusammengeführt werden.
Dabei sollen alle Werte die diesselbe ID haben (oder Artikelnummer) adiert werden.
(Das Ganze wird anschließend mit einer Weiteren Tabelle geJOINt - "Prioliste")

  1. Das Ganze funktioniert durchaus mit "Artikelliste" und "Be_Artikel",
    ich weiss aber nicht wie ich "So_Artikel" mit einbringen soll oder
  2. ob das Konstrukt im Ganzen in der Form überhaupt sinnvoll ist.
    Kann jemand mal daruber schauen?

"LEFT JOIN So_Artikel" um die Idee zu verdeutlichen.


SELECT
    Artikelliste.ID,
    Artikelliste.ArtNr,
    Artikelliste.Name,
    SUM(Be_Artikel.Menge) AS Menge,
    SUM(Be_Artikel.Geliefert) AS Geliefert,
    Artikelliste.Sonderartikel
FROM
    Artikelliste
LEFT JOIN Be_Artikel ON Be_Artikel.Artikel_ID = Artikelliste.ID
LEFT JOIN So_Artikel ON So_Artikel.Art_So_ID = Artikelliste.ID
GROUP BY
    Artikelliste.ID

Gesamter (funktionsfähiger) Originalcode:


SELECT
Y.ID,
Y.ArtNr,
Y.Name,
Y.Menge,
Y.Geliefert,
COALESCE(X.PrioMenge,0) AS PrioMenge,
COALESCE(X.Datum,'1900-01-01') AS Datum
FROM
    (
    SELECT
        Artikelliste.ID,
        Artikelliste.ArtNr,
        Artikelliste.Name,
        SUM(Be_Artikel.Menge) AS Menge,
        SUM(Be_Artikel.Geliefert) AS Geliefert
    FROM
        Be_Artikel,
        Artikelliste
    WHERE
        Be_Artikel.Artikel_ID = Artikelliste.ID
    GROUP BY
        Be_Artikel.Artikel_ID
) AS Y
LEFT JOIN(
    SELECT
        Artikelliste.ArtNr,
        Artikelliste.Name,
        Priority.PrioMenge,
        Priority.Datum
    FROM
        Artikelliste,
        Priority
    WHERE
        Priority.ID_Artikelliste = Artikelliste.ID
) AS X
ON
    Y.ArtNr = X.ArtNr;

passendes EER Diagramm im Anhang

Danke für eure Mühe

"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein

W
955 Beiträge seit 2010
vor 3 Jahren

Art_So_ID ist der falsche Fremdschlüssel. ER-Diagramm richtig lesen.

echdeneth Themenstarter:in
161 Beiträge seit 2019
vor 3 Jahren

Wurde korrigiert... war aber nur ein nebensächliches Problem

"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein

W
955 Beiträge seit 2010
vor 3 Jahren

Dann gruppiere doch die beiden Subqueries zuerst einzeln und joine dann die Gruppen zusammen.