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")
"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
Art_So_ID ist der falsche Fremdschlüssel. ER-Diagramm richtig lesen.
Wurde korrigiert... war aber nur ein nebensächliches Problem
"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein
Dann gruppiere doch die beiden Subqueries zuerst einzeln und joine dann die Gruppen zusammen.