Hallo zusammen,
letztes Jahr habe ich mir eine kleine Query geschrieben, die mir den Lagerbestand rückwirkend zu einem bestimmten Datum ausgibt.
So wie ich das aktuell sehe, passt/funktioniert die Query noch.
Evtl hat ja hier jemand interesse an dieser Query, oder Verbesserungsvorschläge?
Oder ich habe irgendetwas nicht bedacht?
Wäre toll, wenn es die ein oder andere Rückmeldung gibt.
So genug Text:
ACHTUNG: ohne jegliche Garantie auf Richtigkeit und Fehlerfreiheit! SQL Queries immer auf eigene Gefahr!
letztes Jahr habe ich mir eine kleine Query geschrieben, die mir den Lagerbestand rückwirkend zu einem bestimmten Datum ausgibt.
So wie ich das aktuell sehe, passt/funktioniert die Query noch.
Evtl hat ja hier jemand interesse an dieser Query, oder Verbesserungsvorschläge?
Oder ich habe irgendetwas nicht bedacht?
Wäre toll, wenn es die ein oder andere Rückmeldung gibt.
So genug Text:
ACHTUNG: ohne jegliche Garantie auf Richtigkeit und Fehlerfreiheit! SQL Queries immer auf eigene Gefahr!
Code:
declare @InventurDatum AS DATETIME;
SET @InventurDatum = CONVERT(datetime, '30/11/2014', 103);
SELECT
A.fLagerbestand,
B.cArtNr,
B.cName as Bezeichnung,
CAST((
select A.fLagerbestand-coalesce(sum(D.fAnzahl),0 ) FROM [eazybusiness].[dbo].[tArtikelHistory] AS D
WHERE A.kArtikel=D.kArtikel
AND D.dGebucht > @InventurDatum
) AS int) as "inventur zum InventurDatum",
-- B.fVKBrutto,
B.fEKNetto,
-- A.kArtikel,
CAST(
(
select A.fLagerbestand-coalesce(sum(D.fAnzahl),0) FROM [eazybusiness].[dbo].[tArtikelHistory] AS D
WHERE A.kArtikel=D.kArtikel
AND D.dGebucht > @InventurDatum
) AS int) * B.fEKNetto as EKTotal,
(select CONVERT(varchar, max(C.dGebucht), 111) FROM [eazybusiness].[dbo].[tArtikelHistory] AS C WHERE A.kArtikel=C.kArtikel AND C.kBuchungsart = 10 AND C.dGebucht <= @InventurDatum ) as lastWareneingang
FROM [eazybusiness].[dbo].[tlagerbestand] AS A
LEFT JOIN [eazybusiness].[dbo].[tArtikel] AS B ON A.kArtikel = B.kArtikel
where
CAST (
(
select A.fLagerbestand-coalesce(sum(D.fAnzahl),0) FROM [eazybusiness].[dbo].[tArtikelHistory] AS D
WHERE A.kArtikel=D.kArtikel
AND D.dGebucht >= @InventurDatum
) AS int
) > 0
OR
(A.kArtikel NOT IN (SELECT kArtikel FROM [eazybusiness].[dbo].[tArtikelHistory] WHERE dGebucht > @InventurDatum )
AND fLagerbestand > 0)
order by lastWareneingang asc