Neu Eigene Übersicht in Aufträgen - Anzeige der verfügbaren Lagerstände in unterschiedlichen Lagern

C.lagler

Aktives Mitglied
26. November 2021
6
1
Wir haben den Bedarf, dass wir einen verfügbaren Lagerstand in unterschiedlichen Lagern im Verkauf benötigen. Der Verfügbarkeitsstand in den Artikelstammdaten bezieht sich ja leider nur auf alle Lager.
Daher haben wir eine eigene Übersicht entwickelt die allerdings einen kleinen Fehler hat: Sobald ein Artikel mehrfach auf einem Auftrag aufscheint sind die angezeigten Mengen nicht mehr korrekt. Die SQL Abfrage sieht wie folgt aus:

SELECT tArtikel.cArtNr as Artikelnummer,

ROUND(CONVERT(FLOAT, SUM(CASE WHEN tlagerbestandProLagerLagerartikel.kWarenlager = 1 THEN tlagerbestandProLagerLagerartikel.fBestand END)
-
Coalesce(

(
SELECT
SUM(inner_pos.nAnzahl) AS inAuftrag
FROM tBestellpos inner_pos
INNER JOIN tBestellung inner_be ON inner_pos.tBestellung_kBestellung = inner_be.kBestellung
LEFT OUTER JOIN tArtikel inner_art ON inner_pos.tArtikel_kArtikel = inner_art.kArtikel

WHERE
inner_art.kArtikel = tArtikel.kArtikel
AND inner_be.nStorno = 0 AND
inner_be.nKomplettAusgeliefert = 0 AND
inner_be.cType = 'B' AND
inner_be.kFirma = 1
)
,0)
+
Coalesce(

(
SELECT
(SUM(inner_lspos2.fAnzahl)) AS inAuftrag
FROM tBestellpos inner_pos2
INNER JOIN tBestellung inner_be2 ON inner_pos2.tBestellung_kBestellung = inner_be2.kBestellung
INNER JOIN tArtikel inner_art2 ON inner_pos2.tArtikel_kArtikel = inner_art2.kArtikel
LEFT OUTER JOIN tLieferscheinPos inner_lspos2 ON inner_pos2.kBestellPos = inner_lspos2.kBestellPos
WHERE
inner_art2.kArtikel = tArtikel.kArtikel
AND inner_be2.nStorno = 0 AND
inner_be2.nKomplettAusgeliefert = 0 AND
inner_be2.cType = 'B' AND
inner_be2.kFirma = 1
)
,0)

),2) AS Verfügbar_Wernberg,


ROUND(CONVERT(FLOAT, SUM(CASE WHEN tlagerbestandProLagerLagerartikel.kWarenlager = 2 THEN tlagerbestandProLagerLagerartikel.fBestand END)

-
Coalesce(

(
SELECT
(SUM(inner_pos.nAnzahl)) AS inAuftrag
FROM tBestellpos inner_pos
INNER JOIN tBestellung inner_be ON inner_pos.tBestellung_kBestellung = inner_be.kBestellung
INNER JOIN tArtikel inner_art ON inner_pos.tArtikel_kArtikel = inner_art.kArtikel
LEFT OUTER JOIN tLieferscheinPos inner_lspos ON inner_pos.kBestellPos = inner_lspos.kBestellPos
WHERE
inner_art.kArtikel = tArtikel.kArtikel
AND inner_be.nStorno = 0 AND
inner_be.nKomplettAusgeliefert = 0 AND
inner_be.cType = 'B' AND
inner_be.kFirma = 2
)
,0)
+
Coalesce(

(
SELECT
(SUM(inner_lspos2.fAnzahl)) AS inAuftrag
FROM tBestellpos inner_pos2
INNER JOIN tBestellung inner_be2 ON inner_pos2.tBestellung_kBestellung = inner_be2.kBestellung
INNER JOIN tArtikel inner_art2 ON inner_pos2.tArtikel_kArtikel = inner_art2.kArtikel
LEFT OUTER JOIN tLieferscheinPos inner_lspos2 ON inner_pos2.kBestellPos = inner_lspos2.kBestellPos
WHERE
inner_art2.kArtikel = tArtikel.kArtikel
AND inner_be2.nStorno = 0 AND
inner_be2.nKomplettAusgeliefert = 0 AND
inner_be2.cType = 'B' AND
inner_be2.kFirma = 2
)
,0)


),2) AS Verfügbar_Klagenfurt


FROM tBestellung

INNER JOIN tBestellpos ON tBestellung.kBestellung = tBestellpos.tBestellung_kBestellung
INNER JOIN tArtikel ON tBestellpos.tArtikel_kArtikel = tArtikel.kArtikel
INNER JOIN tlagerbestandProLagerLagerartikel ON tArtikel.kArtikel = tlagerbestandProLagerLagerartikel.kArtikel

WHERE tBestellung.kBestellung = @Key

GROUP BY tArtikel.kArtikel,tArtikel.cArtNr

Eine ähnliche Abfrage in der Artikelübersicht funktioniert.
Wenn diesen Code jemand braucht, bitte gerne melden.

Ich hoffe es kann mir jemand bei diesem Code weiterhelfen.

Besten Dank vorab.
 

Patrizia

Sehr aktives Mitglied
19. September 2010
491
80
Mir zu unterstellen, dass ich rudimentäre Ahnung von SQL habe, wäre eine Übertreibung.
Aber ich habe das gleiche Problem und mein Freund ChatGPT war hilfsbereit.
Ich bin ehrlich gesagt platt vom Ergebnis her. Er pröpfelt manchmal herum und macht Fehler und korrigiert sie dann falsch, aber wenn man ein wenig logisch mitdenken kann und immer wieder dahin zurückgeht, wo es funktioniert hat, dann kommt ein Ergebnis heraus, das genau das tut, was ich wollte und was ich in 100 Jahren nicht zustande gebracht hätte.
Mein einziger echter Beitrag war die Filterung auf Artikel mit Bestand, Artikelsprache nur deutsch (sonst kommt jede Zeile für jede Sprache) und die Plattform ( Wawi) ansonsten kommt jede Zeile auch für jede Plattform.

Zwei Schönheitsfehler: Kindartikel müssen aus dem oberen Hauptfenster heraus angewählt werden, nicht aus dem unteren Fenster und man kann immer nur einen Artikel auswählen.

Versuch mal, ob es was hilft:

SELECT
SKU,
Artikelname,
Lager,
Bestand,
Lagerwert
FROM
(
SELECT
'Summe' AS SKU,
NULL AS Artikelname,
NULL AS Lager,
FORMAT(SUM(fBestand), '#,0') AS Bestand,
FORMAT(SUM(fBestand * TA.fEkNetto), '#,0') AS Lagerwert,
0 AS OrderFlag
FROM
tlagerbestandProLagerLagerartikel LPL
LEFT JOIN
tArtikel TA ON LPL.kArtikel = TA.kArtikel
LEFT JOIN
tWarenlager TL ON LPL.kWarenlager = TL.kWarenLager
LEFT JOIN
tArtikelBeschreibung TAB ON TA.kArtikel = TAB.kArtikel
WHERE
TA.kArtikel = @keys
AND fBestand > 0
AND kSprache = 1
AND kPlattform = 1

UNION ALL

SELECT
cArtNr AS SKU,
TAB.cName AS Artikelname,
TL.cName AS Lager,
FORMAT(fBestand, '#,0') AS Bestand,
FORMAT(fBestand * TA.fEkNetto, '#,0') AS Lagerwert,
1 AS OrderFlag
FROM
tlagerbestandProLagerLagerartikel LPL
LEFT JOIN
tArtikel TA ON LPL.kArtikel = TA.kArtikel
LEFT JOIN
tWarenlager TL ON LPL.kWarenlager = TL.kWarenLager
LEFT JOIN
tArtikelBeschreibung TAB ON TA.kArtikel = TAB.kArtikel
WHERE
TA.kArtikel = @keys
AND fBestand > 0
AND kSprache = 1
AND kPlattform = 1
) AS Result
ORDER BY
OrderFlag DESC,
CASE WHEN SKU IS NULL THEN 1 ELSE 0 END,
CAST(Bestand AS INT) DESC;
 
Ähnliche Themen
Titel Forum Antworten Datum
Lieferscheine -versendet / Eigene Übersicht: Kundenkategorie aus den Kundenstammdaten JTL-Wawi 1.8 3
Neu Eigene Übersicht Kunde QR Code Kundennummer Eigene Übersichten in der JTL-Wawi 4
Beantwortet Lagerplatz Kommentar 1 in Eigene Übersicht Eigene Übersichten in der JTL-Wawi 5
Neu Eigene Felder aus dem Auftrag in der Packtisch+ / WMS Ausgabe JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 4
Neu Eigene Felder / Attribute spaltenweise exportieren JTL Ameise - Eigene Exporte 6
Neu Wie kann ich über eigene Felder eine Mehrfachauswahl erstellen? User helfen Usern - Fragen zu JTL-Wawi 4
Neu Eigene Übersichten - Beschaffung - Bestellvorschläge - nur Standardlieferant anzeigen Eigene Übersichten in der JTL-Wawi 4
Eigene USt-IdNr. fehlt in der Auftragsansicht bei Auslandsbestellungen (JTL-Wawi 1.8.12.2) JTL-Wawi 1.8 3
Neu Eigene Alerts im Template ausgeben bzw. hinzufügen Templates für JTL-Shop 0
Neu eigene Tabs in Ebay Vorlage einfügen eBay-Designvorlagen - Fehler und Bugs 0
Eigene Felder lassen sich in der Wawi nicht löschen JTL-Wawi 1.8 0
Neu Eigene Seiten mit externer Verlinkung nicht mehr bearbeitbar JTL-Shop - Fehler und Bugs 1
Neu Eigene Felder in Neuregistrierungs-Email an Kunden ausgeben JTL-Shop 5.2.4 Allgemeine Fragen zu JTL-Shop 0
Neu Auftrag->Eigene Übersichten Anzeigen lassen in welchem Lager ist wieviel Bestand. Eigene Übersichten in der JTL-Wawi 2
Neu Durchschnittlichen EK der letzten 3 Monate als Übersicht Eigene Übersichten in der JTL-Wawi 17
Versand, Auftrag, Dropshipping Übersicht bereits ausgelieferte ausblenden JTL-Wawi 1.9 0
Neu Stellplatz Übersicht Kunde User helfen Usern 0
Neu Feld aus Kundenkonto wird in der Übersicht im Auftrag nicht angezeigt? User helfen Usern - Fragen zu JTL-Wawi 5
Neu PayPal Link zur Zahlung in Angeboten / Aufträgen funktioniert aktuell nicht mehr User helfen Usern - Fragen zu JTL-Wawi 1
Neu Lastschrifteinzug Summen zu Aufträgen zuordnen User helfen Usern - Fragen zu JTL-Wawi 1
Neu Duplizieren von Aufträgen öffnet Kontextmenü im unteren Bereich der Wawi JTL-Wawi - Fehler und Bugs 1
[Bug]🪲 JTL-Wawi 1.9 | Memoryleak beim Öffnen von Aufträgen JTL-Wawi 1.9 2

Ähnliche Themen