Ich werde denke heute noch das ganze als Tool zur verfügung stellen,
anbei das SQL
Code:
--declare @timeStamp datetime2 = '10.01.2016'
SELECT
cArtNr
,bestand.Bestand
,fEkNetto
,fEkNetto * bestand.Bestand as 'Gesamt Ek Netto (GLD)'
,bestand.Wert 'Gesamt Ek Laut WE'
,fVKNetto
,fVKNetto * bestand.Bestand as 'GesamtVkNetto'
,@timeStamp 'Zeitpunkt'
from tArtikel a
join
(SELECT
tabAusgang.kArtikel
,IsNull(Eingaenge,0)-ISNULL(Ausgaenge,0) 'Bestand'
,IsNull(WertEingänge,0)-ISNULL(WertAusgänge,0) 'Wert'
FROM
(
SELECT
SUM(wla.fAnzahl) AS 'Ausgaenge'
,SUM(wla.fAnzahl * wle.fEKEinzel) AS 'WertAusgänge'
,wla.kArtikel
FROM dbo.tWarenLagerAusgang wla
join dbo.tWarenLagerEingang wle on wla.kWarenLagerEingang = wle.kWarenLagerEingang
WHERE wla.dErstellt < @timeStamp
group by wla.kArtikel
) tabAusgang
JOIN
(
SELECT
SUM(wle.fAnzahl) AS 'Eingaenge'
,SUM(wle.fAnzahl * wle.fEKEinzel) AS 'WertEingänge'
,kArtikel
FROM dbo. tWarenLagerEingang wle
WHERE wle.dErstellt < @timeStamp
-- and ISNULL(wle.kWarenLagerEingang_Ursprung,0) != 0
group by wle.kArtikel
) tabEingang ON tabAusgang.kArtikel=tabEingang.kArtikel
) bestand on a.kArtikel = bestand.kArtikel
where Bestand > 0
Ist halt doch kein 4 Zeiler
So nun auch anbei der Download Link
http://v3.vstmd.de/LagerbewertungV2.zip
im Zip ist eine kleine README für die Datenbank zugangsdaten.
Danke für die Ressourcen die uns zur verfügung stellst
Hat mir sehr geholfen!
Ich habe das SQL ein wenig angepasst und mir werden z.b. nur Artikel angezeigt die einen Wareneingang und auch einen Warenausgang haben. Artikel die bis zum Stichtag nur einen Wareneingang in der Artikelhistorie hinterleget haben werden nicht ausgegeben bei der Abfrage. Hast du eine Idee woran das liegen könnte?
DECLARE @stichtag datetime2
SET @stichtag = '2021-12-31 23:59:00'
SELECT
cArtNr
,tArtikel_kArtikel
,bestand.Bestand
,@stichtag 'Zeitpunkt'
,tlieferant.cFirma AS 'Kunde'
from tArtikel a
join
(SELECT
tabAusgang.kArtikel
,IsNull(Eingaenge,0)-ISNULL(Ausgaenge,0) 'Bestand'
FROM
(
SELECT
SUM(wla.fAnzahl) AS 'Ausgaenge'
,wla.kArtikel
FROM dbo.tWarenLagerAusgang wla
join dbo.tWarenLagerEingang wle on wla.kWarenLagerEingang = wle.kWarenLagerEingang
WHERE wla.dErstellt < @stichtag
group by wla.kArtikel
) tabAusgang
JOIN
(
SELECT
SUM(wle.fAnzahl) AS 'Eingaenge'
,kArtikel
FROM dbo. tWarenLagerEingang wle
WHERE wle.dErstellt < @stichtag
-- and ISNULL(wle.kWarenLagerEingang_Ursprung,0) != 0
group by wle.kArtikel
) tabEingang ON tabAusgang.kArtikel=tabEingang.kArtikel
) bestand on a.kArtikel = bestand.kArtikel
JOIN tliefartikel ON a.kArtikel = tliefartikel.tArtikel_kArtikel
JOIN tlieferant ON tliefartikel.tLieferant_kLieferant = tlieferant.kLieferant