Neu Wawi Fehlbestände rausfinden

ChristianZ

Aktives Mitglied
8. März 2017
5
0
Hallo Allerseits,

herzlich willkommen zu meinem ersten Post.

Ich versuche verzweifelt einen SQL-Query zu basteln, der mit ausgibt, welche Bestellungen, bzw. Bestellpositionen derzeit aufgrund von mangelndem Bestand nicht auf Pickliste gesetzt werden können.

Es gibt zwar den Menüpunkt in der Wawi, aber da aufgrund von Leerverkäufen an manchen Tagen bis 50 oder mehr Bestellungen reinlaufen, würde es einfacher gehen, wenn man diese Positionen direkt aus der Datenbank auslesen kann. Es langt hierbei aber nicht die Bestellpositionen zu finden, deren verfügbarer Bestand <0 ist, sondern es müssten explizit die Bestellungen sein, die nichts abbekommen haben, wegen FIFO bzw. Prio.

Hat jemand eine Idee, welche Tabelle(n) mir hier helfen?
 

mmarsching

Aktives Mitglied
2. September 2014
77
3
Ich schmeiße mal aus Zeitmangel das Ding hier ohne Erklärung rein, was ich mir gerade für ein ähnliches Problem gebastelt habe. Es geht zwar auf die aggregierten Artikel aller offenen Bestellungen, auch habe ich keine Ahnung, ob es nicht auch nur LEFT JOINs tun würden, aber ich denke you get the point:

SQL:
SELECT
tArtikel.cArtNr, tArtikelBeschreibung.cName, tlagerbestand.fLagerBestandEigen - SUM(nAnzahl) AS fehlbestand
FROM tbestellpos
LEFT JOIN tBestellung ON tBestellung.kBestellung = tbestellpos.tBestellung_kBestellung
INNER JOIN tArtikel ON tArtikel.kArtikel = tArtikel_kArtikel
INNER JOIN tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tArtikel.kArtikel AND tArtikelBeschreibung.kPlattform = 1
INNER JOIN tlagerbestand ON (tArtikel.kArtikel = tlagerbestand.kArtikel)
LEFT JOIN tVersandInfo ON (tBestellung.kBestellung = tVersandInfo.kBestellung)
WHERE tRechnung_kRechnung <> 0 /* ICH WILL NUR DIE MIT RECHNUNG (ALSO KEINE UNBEZAHLTE VORKASSE) */
AND (tZahlung.kZahlung IS NOT NULL OR tBestellung.kZahlungsArt <> 2) /* DIE BEZAHLT WURDEN ODER OFFENE RECHNUNGEN SIND */
AND tVersandInfo.dVersanddatum IS NULL /* DIE NOCH NICHT VERSENDET WURDEN */
AND tBestellung.dVersandt IS NULL /* UND AUCH NICHT OHNE VERSAND ABGESCHLOSSEN WURDEN */
AND tBestellung.nStorno = 0 /* UND DIE NICHT STORNIERT WURDEN */
GROUP BY tArtikel.cArtNr, tArtikel.cBarCode, tArtikel.cBarCode, tArtikelBeschreibung.cName, tlagerbestand.fLagerBestandEigen
HAVING tlagerbestand.fLagerBestandEigen - SUM(nAnzahl) < 0
ORDER BY tArtikel.cArtNr;
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: ChristianZ