Gelöst eigene Chargen Übersicht für "Verknüpfte Artikel"

KostjaThomas

Gut bekanntes Mitglied
13. Januar 2017
144
6
Hallo,
ich habe freundlicher Weise eine Abfrage bekommen zur Darstellung der einzelnen Chargen und deren Bestand. Jetzt funktioniert das aber nur, wenn ich die Kindartikel in der oberen Übersicht markiere, nicht aber, wenn ich den Vaterartikel dort markiere und den Kindartikel unter "Verknüpfte Artikel" links unten. Wegen der besseren Übersicht filten wir in der Artikelübersicht oben immer nur die Vaterartikel. Kann man grundsätzlich auch eigene Übersichten erstellen, die Bezug auf die unten links ausgewählten Kindartikel (Reiter "verknüpfte Artikel") nimmt? Wenn ja, wie müsste ich die Abfrage im Anschluss umformulieren:

DECLARE @artikel_name nvarchar(100)
SELECT @artikel_name = cName FROM tArtikelBeschreibung WHERE kArtikel = @Key AND kPlattform = 1

--select * FROM tWarenLagerEingang where kArtikel = @Key

SELECT @artikel_name AS 'Artikel',
wl.cName AS Warenlager,
wlp.cName AS Lagerplatz,
wle.cChargenNr AS 'Charge',
CONVERT (varchar(10), wle.dMHD, 104) AS MHD,
CONVERT(money, SUM(wle.fAnzahlAktuell)) AS Bestand
FROM tWarenLagerEingang wle
JOIN dbo.tWarenLagerPlatz wlp ON wle.kWarenLagerPlatz = wlp.kWarenLagerPlatz
JOIN dbo.tWarenLager wl ON wlp.kWarenLager = wl.kWarenLager
WHERE wle.fAnzahlAktuell > 0.0
AND wle.kArtikel = @Key
GROUP BY wl.cName,
wlp.cName,
wle.cChargenNr,
wle.dMHD
ORDER BY wl.cName,
wlp.cName

Viele Grüße Kostja
 

frankell

Sehr aktives Mitglied
9. September 2019
2.676
840
Flensburg
Hallo Kostja,

nein, das ist nicht möglich. Immer dann, wenn im Code @Key(s) verwendet wird, bezieht sich die Eigene Übersicht auf das, was in der oberen Übersicht ausgewählt ist.

Und nein, an @Key(s) kommst Du sinnvoller Weise nicht vorbei.

VG,
Frank
 
  • Gefällt mir
Reaktionen: KostjaThomas

Happy

Sehr aktives Mitglied
29. Juli 2011
497
124
Hückelhoven
Hallo @KostjaThomas
ich hoffe, ich habe deine Anfrage hier richtig verstanden, dementsprechend könntest du tArtikel Joinen bzw. als Ausgangslage benutzen, wenn du hier mit @Keys auf kArtikel und kVaterartikel gehst, bekommst du eine Liste der Artikel inkl. der Kinder. Stücklisten und Komponenten sind dabei nochmal was ganz anderes und würden das SQL ein wenig mehr aufblähen.
Ich habe dir ein angepasstes SQL geschrieben, probier das mal aus.

SQL:
SELECT
            TAB.cName                                AS Artikel,
            TWL.cName                                AS Warenlager,
            TWLP.cName                                AS Lagerplatz,
            TWLE.cChargenNr                            AS Charge,
            CONVERT(VARCHAR(10), TWLE.dMHD, 104)        AS MHD,
            CONVERT(DECIMAL(25,2), SUM(TWLE.fAnzahlAktuell)) AS Bestand
FROM dbo.tArtikel AS Art
JOIN dbo.tArtikelBeschreibung AS TAB ON TAB.kArtikel = Art.kArtikel AND TAB.kSprache = 1
JOIN dbo.tWarenLagerEingang AS TWLE ON TWLE.kArtikel = Art.kArtikel
JOIN dbo.tWarenLagerPlatz AS TWLP ON TWLP.kWarenLagerPlatz = TWLE.kWarenLagerPlatz
JOIN dbo.tWarenLager AS TWL ON TWL.kWarenLager = TWLP.kWarenLager
WHERE
    (Art.kArtikel = @Keys OR Art.kVaterArtikel = @Keys) AND TWLE.fAnzahlAktuell > 0
GROUP BY TAB.cName, TWL.cName, TWLP.cName, TWLE.cChargenNr, TWLE.dMHD
 

KostjaThomas

Gut bekanntes Mitglied
13. Januar 2017
144
6
Hallo Happy,
eben ist mir aufgefallen, daß die Abfrage genau den doppelten Bestand ausgibt? Kannst da nochmal drüber schauen?
Viele Grüße, Kostja
 

frankell

Sehr aktives Mitglied
9. September 2019
2.676
840
Flensburg
Das liegt an der Nicht-Berücksichtigung der potentiell verschiedenen Plattformen/Shops in tArtikelBeschreibung. Wenn Du

SQL:
AND TAB.kPlattform = 1

hinter TAB.kSprache = 1 ergänzt, sollte es passen.

Grundsätzlich würde ich aber gerade wegen der mehreren Ausgabekanäle eher dazu raten, vStandardArtikel zu nutzen, wenn nur die Standardbezeichnung des Artikels in der Standardsprache interessiert. Dann wird aus

SQL:
FROM dbo.tArtikel AS Art
JOIN dbo.tArtikelBeschreibung AS TAB ON TAB.kArtikel = Art.kArtikel AND TAB.kSprache = 1

einfach nur:

SQL:
FROM dbo.vStandardArtikel AS Art

und "TAB.cName" müsste zu "Art.cName" geändert werden.
 
  • Gefällt mir
Reaktionen: Happy

KostjaThomas

Gut bekanntes Mitglied
13. Januar 2017
144
6
Hallo Frankell,
vielen Dank, habs eben ausprobiert. Das hat sehr gut funtioniert. Jetzt wird die Menge korrekt angezeigt.
Viele Grüße, Kostja
 

Ähnliche Themen