Neu Lagerbestandsentwicklung auf Artikelebene

seller0000

Aktives Mitglied
12. Dezember 2017
9
0
Hallo zusammen,

wie kann man in JTL die historische Entwicklung des Lagerbestands von Artikeln auswerten?

Vielen Dank vorab!
 

Enrico W.

Administrator
Mitarbeiter
27. November 2014
9.218
1.958
Schau doch mal im Artikel - da findest du unten die Schaltfläche "Artikelhistorie". Hilft Dir das schon weiter?
 

seller0000

Aktives Mitglied
12. Dezember 2017
9
0
Den Bereich kenne ich schon aber hilft mir nicht weiter. Ich benötige am besten ein Export der Lagerbestände der letzten Tage oder Monate. In der Artikelhistorie sind weitere Daten wie Abgänge und Zugänge enthalten. Ich benötige nur den Lagerbestand.
 

Kevin Knarren

Offizieller Service Partner
SPBanner
3. Januar 2022
55
11
Hi @seller0000,

wäre es vielleicht eine Hilfe, wenn Du regelmäßig den Lagerbestand exportierst (über JTL-Ameise) und anschließend Dir über die Statistik die verkauften Mengen auswertest und die beiden Zahlen dann gegenüberstellst?

Ansonsten sehe ich hier nur die Möglichkeit das direkt per SQL-Abfrage aus der Datenbank zu holen, vielleicht reicht Dir ja aber auch schon der oben beschriebene Weg.
 

seller0000

Aktives Mitglied
12. Dezember 2017
9
0
Hi @Kevin Knarren ,

ich benötige dies nicht generell sondern jetzt um eine Auswertung zu machen. Dein beschriebener Weg würde mir aktuell nicht weiterhelfen. Es muss doch möglich sein, die historischen Bestände zu exportieren. GIbt es da keine Möglichkeiten über die Statistik oder Ameise?
 

Enrico W.

Administrator
Mitarbeiter
27. November 2014
9.218
1.958
Artikelhistorie - Rechtsklick auf eine Spaltenüberschrift - Exportieren.
In Excel kannst du die Daten gern filtern.
Ansonsten sehe ich hier keine Möglichkeit, schon allein, weil der Lagerbestand innerhalb von Minuten sich mehrmals am Tag ändert.
Wenn du sowas regelmäßig auswerten möchtest, dann mach das über regelmäßige Exporte oder per Workflows, die die Daten in eine CSV schreiben.
 

seller0000

Aktives Mitglied
12. Dezember 2017
9
0
Nein nicht regelmäßig auswerten, sondern aktuell für das letzte Jahr um zu ermitteln, bei welchen Artikel es wann keinen Lagerbestand gab. der Anfangsbestand von jedem Tag würde ausreichen. Ich brauche nicht alle Bestandsänderung eines Tages.
 

Enrico W.

Administrator
Mitarbeiter
27. November 2014
9.218
1.958
Nachträglich nicht mit Boardmitteln möglich.
Dazu benötigst Du eine angepasste SQL-Abfrage.
 

Kevin Knarren

Offizieller Service Partner
SPBanner
3. Januar 2022
55
11
Nein nicht regelmäßig auswerten, sondern aktuell für das letzte Jahr um zu ermitteln, bei welchen Artikel es wann keinen Lagerbestand gab. der Anfangsbestand von jedem Tag würde ausreichen. Ich brauche nicht alle Bestandsänderung eines Tages.
Das geht dann tatsächlich nur per SQL. Es gibt hier im Forum ein SQL-Script für eine "Stichtagsbezogene Inventur". Da lässt sich mit wenig Aufwand das Datum selbst abändern, sodass Du pro Tag einen Bestand rückwirkend hättest. Solltest Du hierbei Schwierigkeiten haben, gerne per PN melden.
 

SebastianB

Moderator
Mitarbeiter
6. November 2012
2.084
339
Als Grundlage kann so ein SQL-Skript dienen: Damit wird im Grunde der Bestand von allen Artikeln im gesamten Zeitverlauf angezeigt:
SELECT
*
FROM (
SELECT
dGebucht,
tArtikel.cArtNr,
Buchungen.kArtikel,
tWarenLagerPlatz.cName AS cWarenLagerPlatzName,
Buchungen.kWarenLagerPlatz,
tWarenLager.cName AS cWarenLagerName,
tWarenLagerPlatz.kWarenLager,
fAnzahl,
SUM(fAnzahl) OVER (PARTITION BY Buchungen.kArtikel, Buchungen.kWarenLagerPlatz ORDER BY dGebucht) AS fBestand
FROM
(
SELECT
dErstellt AS dGebucht, kArtikel, kWarenLagerPlatz, fAnzahl
FROM dbo.tWarenLagerEingang
UNION ALL (
SELECT
dErstellt AS dGebucht, kArtikel, kWarenLagerPlatz, -fAnzahl
FROM dbo.tWarenLagerAusgang
)
) AS Buchungen
LEFT JOIN dbo.tArtikel ON tArtikel.kArtikel = Buchungen.kArtikel
LEFT JOIN dbo.tWarenLagerPlatz ON tWarenLagerPlatz.kWarenLagerPlatz = Buchungen.kWarenLagerPlatz
LEFT JOIN dbo.tWarenLager On tWarenLager.kWarenLager = tWarenLagerPlatz.kWarenLager
) AS Foo
WHERE Foo.fBestand = 0
Das "innere" SQL zieht sich alle Bestandsänderungen (es spiegelt nicht in allen Fällen den tatsächlichen physikalischen Verlauf wieder ( es kann sein, dass ein Warenlagereingang von 10 Stück in mehrere Teile aufgebrochen wird)) - und das äußere SQL sucht dann alle Zeitpunkt zu denen der Bestand auf einem bestimmen Lagerplatz 0 gegangen ist (Läuft nur mit SQL-Server 2012 und aufwärts) - das kann man jetzt noch anpassen, je nachdem was genau gefragt ist.
 

Ähnliche Themen