Neu Bestände eines Artikels, die mindestens ein MHD von x Tagen aufweisen

SebiW

Sehr aktives Mitglied
2. September 2015
2.714
1.327
Hu zusammen,

hier scheitere ich gerade geistig etwas. Ich suche eine Abfrage, die mir den Gesamtbestand eines Artikels anzeigt, insofern das MHD mindestens X Tage beträgt. Im Sinne von:
Artikel hat Bestand 500, aber nur 200 davon sind mindestens 180 Tage haltbar -> eine Abfrage die mir diese 200 ausgibt brauche ich. Ich hab zwar was ähnliches schonmal gebaut, aber ich finds einfach ums verrecken nicht mehr ;)
Danke für Eure Hilfe.
 

John

Sehr aktives Mitglied
3. März 2012
3.212
718
Berlin
Schau Dir mal tWarenLagerEingang an.
In fAnzahlAktuell steht, wie viel von der ursprünglichen Einbuchung des Datensatzes noch da ist und in dMHD hast Du dein Haltbarkeitsdatum.

Rest Fleißarbeit ;)
 
  • Gefällt mir
Reaktionen: SebiW

John

Sehr aktives Mitglied
3. März 2012
3.212
718
Berlin
Mal so Trocken runter geschrieben, habe keine DB mit MHDs zu Hand...

Code:
DECLARE @ArtikelNr varchar(100) = 'Dein Artikel';
DECLARE @TageHaltbar int = 30;

SELECT
vSta.cArtNr,
vSta.cName,
SUM (fAnzahlAktuell) AS 'ArtikelAnzahlimLager'
FROM tWarenLagerEingang tWLE
JOIN vStandardArtikel vSta ON vSta.kArtikel = tWLE.kArtikel
WHERE fAnzahlAktuell > 0
AND dMHD > DATEADD( DAY, @TageHaltbar, SYSDATETIME())
AND vSta.cArtNr = @ArtikelNr
GROUP BY  vSta.cArtNr, vSta.cName
 
  • Ich liebe es
Reaktionen: SebiW

SebiW

Sehr aktives Mitglied
2. September 2015
2.714
1.327
Hi John, wollte gerade damit anfangen, hätte sicher länger gebraucht bis ich zu dem Ergebnis gekommen wäre, danke Dir :)
Jetzt kommt der für mich interessante Teil, ich werde daraus ne verschachtelte Abfrage bauen die mir bei einem Setartikel anzeigt wieviele ich produzieren kann, abhängig von der Haltbarkeit der Setkomponenten. Sobald ichs habe stell ich das hier rein. Erstmal noch die letzten GPSR Reste fertig kriegen 😩
 

SebiW

Sehr aktives Mitglied
2. September 2015
2.714
1.327
Hi John, danke nochmal, warst mir eine große Hilfe, finale Lösung sieht für meine Zwecke so aus:

SELECT
SUBSTRING(tSET.cArtNr,6,100) AS 'SET',
KOMPONENTE.cArtNr AS 'Tüte',
KOMPONENTENNAME.cName AS 'Name',
CAST(SUM (WE.fAnzahlAktuell) AS INT) AS 'Produktion verfügbar'
FROM tArtikel tSET
JOIN tStueckliste AS STUECKLISTE ON STUECKLISTE.kStueckliste = tSET.kStueckliste
JOIN tArtikel AS Komponente ON KOMPONENTE.kArtikel = STUECKLISTE.kArtikel
JOIN tArtikelBeschreibung AS KOMPONENTENNAME ON KOMPONENTENNAME.kArtikel = KOMPONENTE.kArtikel
JOIN tWarenLagerEingang AS WE ON WE.kArtikel = KOMPONENTE.kArtikel
WHERE tSET.kArtikel = @Key
AND WE.fAnzahlAktuell > 0
AND KOMPONENTE.cLabelNamen LIKE '%Samentüte%'
AND KOMPONENTENNAME.kSprache = 1
AND KOMPONENTENNAME.kPlattform = 1
AND WE.dMHD > DATEADD( DAY, 915, SYSDATETIME())
GROUP BY tSET.cArtNR, KOMPONENTE.cArtNr, KOMPONENTENNAME.cName
 

Ähnliche Themen