Sicherlich möglich, aber in der Version nicht angedacht, da wir hier eben Explizit die version des Betriebssystem setzen.
Hallo zusammen,
das Programm klingt wirklich Toll. Vielen Dank für die Mühe @Visitmedia | Marc. Kann man bedenkenlos die Zugangsdaten zur Datenbank in die Config eintragen? Ich bin bei solchen Dingen immer etwas paraonoid. Aber das Teil wäre schon eine Tolle Sache...wir benötigen dieses Feature unbedingt.
Vorweg: Klasse Tool! Das freut unsere Buchhaltung, immer zu einem Datum den Lagerbestand ermitteln zu können.
Wir haben bei uns das Problem, dass teilweise englische Betriebssysteme benutzt werden. Dadurch werden die Deizimaltrennzeichen nicht korrekt gesetzt - welches im Nachgang dann Excel gar nicht gefällt.
Gibt es die Möglichkeit, dass diese im Programm festgeschrieben werden, sodass Tausender-trennzeichen immer ein Punkt, und Dezimaltrenner immer ein Komma sind?
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
Hallo,
das SQL hier im Forum aktuallisiere ich natürlich nicht jedes mal wenn wir was daran Optimieren. Vom Prinzip her ist es sogar noch die Ursprungsversion, und ich glaube die berücksichtigt keine Artikel, welche keine Warenausgänge hat. Das war zumindest anfangs mal ein bug.
Das Tool wird aber im gegensatz immer automatisch auf den neusten Stand gebracht wenn was geändert wird. Daher denke ich wird das auch schon das Problem sein.
Zu dem von Manuel, das klingt ja gut. Und ihr wollt nun selber mal eine Stichtags lagerbewertung anbieten?
/* HIER WERTE ANPASSEN */
declare @stichtag varchar(50) = '12-31-2018'
declare @warenlager varchar(500) = 'WMS'
declare @timeStamp datetime2 = CONVERT(DATE, @stichtag)
declare @warenlagerId int = (SELECT kWarenlager FROM tWarenlager WHERE cName = @warenlager And nAktiv = 1)
SELECT
cArtNr as 'Artikelnummer'
,bestand.Bestand
,fEkNetto as 'EK Netto'
,fEkNetto * bestand.Bestand as 'Gesamt Ek Netto laut GLD'
,bestand.Wert 'Gesamt EK laut Wareneingang'
,fVKNetto as 'VK Netto'
,fVKNetto * bestand.Bestand as 'Gesamt VK Netto'
,CONVERT(varchar, @timeStamp, 104) as 'Stichtag'
from tArtikel a
join
(SELECT
tabEingang.kArtikel
,IsNull(Eingaenge,0)-ISNULL(Ausgaenge,0) 'Bestand'
,IsNull(WertEingänge,0)-ISNULL(WertAusgänge,0) 'Wert'
FROM
(
SELECT
SUM(wle.fAnzahl) AS 'Eingaenge'
,SUM(wle.fAnzahl * wle.fEKEinzel) AS 'WertEingänge'
,wle.kArtikel
,wlp.kWarenLager
FROM dbo. tWarenLagerEingang wle
LEFT JOIN dbo.tWarenLagerEingang wl ON wle.kWarenLagerEingang = wl.kWarenLagerEingang
JOIN dbo.tWarenLagerPlatz wlp ON wle.kWarenLagerPlatz = wlp.kWarenLagerPlatz
WHERE wle.dErstellt < @timeStamp AND wlp.kWarenLager = @warenlagerId
-- and ISNULL(wle.kWarenLagerEingang_Ursprung,0) != 0
group by wle.kArtikel, wlp.kWarenLager
) tabEingang
left JOIN
(
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
join dbo.tWarenLagerPlatz wlp ON wla.kWarenLagerPlatz = wlp.kWarenLager
WHERE wla.dErstellt < @timeStamp AND wlp.kWarenLager = @warenlagerId
group by wla.kArtikel
) tabAusgang ON tabEingang.kArtikel = tabAusgang.kArtikel
) bestand on a.kArtikel = bestand.kArtikel
where Bestand > 0
Titel | Forum | Antworten | Datum | |
---|---|---|---|---|
In Diskussion Idee für Workflow - Lagerbewertung zum Monatsende an das Steuerbüro | JTL-Workflows - Ideen, Lob und Kritik | 3 |