MY-SQL 3 Tabellen Summe auf einer Spalte

MrT

Grünschnabel
Hallo zusammen,

ich habe folgende Ausgangsposition:

3 Tabellen (Verkaufskopf, Verkaufszeile, Artikelposten) die Verkaufstabellen bilden die offenen Aufträge ab, die Tabelle Artikelposten wird lediglich für die Einbindung des Lagerbestandes benötigt und da liegt der Hund begraben, bzw. der Hase im Pfeffer.

Ich bekomme für den Lagerbestand für den gleichen Artikel immer verschiedene Werte und weiß nicht, wo ich den Fehler mache.
Der Befehl SUM (dbo."Artikelposten".Menge) einzeln auf der DB aufgerufen (unten) liefert das korrekte Ergebnis.

----------------------------

SELECT Artikelnr_, SUM(Menge)
FROM dbo."Artikelposten"
WHERE Artikelnr_ <> ''
GROUP BY Artikelnr_

------------------------------

Im kompletten Konstrukt aber eben leider nicht.


SELECT
dbo."Verkaufszeile".Belegnr_ AS Auftragsnummer,
dbo."Verkaufszeile".Zeilennr_,
dbo."Verkaufszeile"."Verk_ an Deb_-Nr_" AS Kundennummer,
dbo."Verkaufskopf"."Ihre Referenz" AS Referenz,
dbo."Verkaufszeile".Nr_,
dbo."Verkaufszeile".Beschreibung,
dbo."Verkaufszeile"."Beschreibung 2",
SUM (dbo."Artikelposten".Menge) AS Lagerbestand,
dbo."Verkaufszeile".Menge AS Auftragsmenge,
dbo."Verkaufszeile"."kommissionierte Menge",
dbo."Verkaufszeile".Seriennr_,

FROM dbo."Verkaufszeile"
INNER JOIN dbo."Artikelposten"
ON dbo."Artikelposten".Artikelnr_ = dbo."Verkaufszeile".Nr_
INNER JOIN dbo."Verkaufskopf"
ON dbo."Verkaufszeile".Belegnr_ = dbo."Verkaufskopf".Nr_

WHERE
dbo."Verkaufszeile".Belegnr_ LIKE 'A%'
AND dbo."Verkaufszeile"."Verk_ an Deb_-Nr_" <> ''
AND "Zu liefern" > 0

GROUP BY dbo."Verkaufszeile".Belegnr_,
dbo."Verkaufskopf"."Ihre Referenz",
dbo."Verkaufszeile".Zeilennr_,
dbo."Verkaufszeile"."Verk_ an Deb_-Nr_",
dbo."Verkaufszeile".Nr_,
dbo."Artikelposten".Menge,
dbo."Verkaufszeile".Beschreibung,
dbo."Verkaufszeile"."Beschreibung 2",
dbo."Verkaufszeile".Menge,
dbo."Verkaufszeile"."kommissionierte Menge",
dbo."Verkaufszeile".Seriennr_

Wo liegt hier mein (Denk-?!?) Fehler?

Danke für eure Unterstützung.

Grüße

MrT
 

Yaslaw

n/a
Moderator
Was genau ist falsch?
Der SUM leifert nur die Summe über alle Mengen, die passende Eintrag in den weiteren Tabellen (Verkaufszeile, Verkaufskopf) haben und die die Where-Bedinung erfüllen.
 

MrT

Grünschnabel
Hallo Yaslaw,

wünsche Ihnen ein gutes neues Jahr.
Habe den Fehler gefunden, das lag an dem GroupBy auf dem Wert "dbo."Artikelposten".Menge".
Nun komme ich aber leider auf ein weiteres Problem.
Es gibt Artikel, die haben Mangels Warenbewegung in dbo."Artikelposten" dort keinen Eintrag und fehlen so in der Liste. Wie kann ich diese Zeile trotzdem anzeigen lassen mit einem dann leeren Lagerbestand?

Danke für die Unterstützung.

Grüße

MrT
 

MrT

Grünschnabel
So, und auch hier hätte ich erst nochmals prüfen sollen.. Habs mit dem LEFT OUTER JOIN hinbekommen.
 

MrT

Grünschnabel
Hallo zusammen,
nun möchte ich dieser Abfrage neben dem Lagerbestand auch noch die Bestellmenge hinzufügen.

Sobald ich das aber mache, Stimmen die Summen auf Lagerbestand UND Bestellmenge nicht mehr.


SELECT
dbo."Verkaufszeile".Belegnr_ AS Auftragsnummer,
dbo."Verkaufszeile".Zeilennr_,
dbo."Verkaufszeile"."Verk_ an Deb_-Nr_" AS Kundennummer,
dbo."Verkaufskopf"."Ihre Referenz" AS Referenz,
dbo."Verkaufszeile".Nr_,
dbo."Verkaufszeile".Beschreibung,
dbo."Verkaufszeile"."Beschreibung 2",
SUM (dbo."Artikelposten".Menge) AS Lagerbestand,
dbo."Verkaufszeile".Menge AS Auftragsmenge,
dbo."Verkaufszeile"."kommissionierte Menge",
dbo."Verkaufszeile".Seriennr_,

FROM dbo."Verkaufszeile"
LEFT OUTER JOIN dbo."Artikelposten"
ON dbo."Verkaufszeile".Nr_ = dbo."Artikelposten".Artikelnr_
LEFT OUTER JOIN dbo."Einkaufszeile"
ON dbo."Verkaufszeile".Nr_ = dbo."Einkaufszeile".Nr_
INNER JOIN dbo."Verkaufskopf"
ON dbo."Verkaufszeile".Belegnr_ = dbo."Verkaufskopf".Nr_

WHERE
dbo."Verkaufszeile".Belegnr_ LIKE 'A%'
AND dbo."Verkaufszeile"."Verk_ an Deb_-Nr_" <> ''
AND "Zu liefern" > 0

GROUP BY dbo."Verkaufszeile".Belegnr_,
dbo."Verkaufskopf"."Ihre Referenz",
dbo."Verkaufszeile".Zeilennr_,
dbo."Verkaufszeile"."Verk_ an Deb_-Nr_",
dbo."Verkaufszeile".Nr_,
dbo."Artikelposten".Menge,
dbo."Verkaufszeile".Beschreibung,
dbo."Verkaufszeile"."Beschreibung 2",
dbo."Verkaufszeile".Menge,
dbo."Verkaufszeile"."kommissionierte Menge",
dbo."Verkaufszeile".Seriennr_

ORDER BY
dbo."Verkaufszeile".Zeilennr_

Was mache ich hier falsch?