Neu Listenansicht Gesamt Warenwert EK im Reiter Verkauf Filter (Position + Plattform)

Boogaloo

Gut bekanntes Mitglied
4. Oktober 2017
119
6
Hallo Leute

Ist es möglich die Eigene Übersicht im Reiter (F6 Verkauf) mit den Filtern im selbigen Reiter zu verknüpfen?

Als kleines Beispiel.
Filter Plattform (ebay)
Filter (Nach Monat Filtern) Mai
Filter Postition (Wert X) Artikelnummer

Dann erhalte ich alle Verkäufe im Monat Mai aus ebay mit der Artikelnummer X

Unten rechts stehen dann die Anzahl der Aufträge sowie die VK Brutto Summe.

Wenn man dann in der "Eigene Übersichten" noch den Netto EK für all diese Verkäufe anzeigen könnte (Vielleicht sogar noch Anzahl der Retouren) liese sich super berechnen wie wirtschaftlich der Artikel ist.

Hat da jemand von euch eine Idee ob sich das umsetzten lässt.

Vorab schon mal Danke für die Anregungen.

Mfg B.
 

KevinK

Mitglied
1. April 2016
1.550
121
Hallo @Boogaloo,

so richtig verstehe ich nicht was genau damit gemeint ist.

Du möchtest pro Auftrag eine eigene Übersicht haben, die bei den Positionen was genau anzeigen soll?
 

Boogaloo

Gut bekanntes Mitglied
4. Oktober 2017
119
6
Hallo

Nicht Pro Auftrag.
In Anhängigkeit der Gesetzten Filter im Reiter Verkauf.

Anbei ein Screenshot.

Im Filter Datum wähle ich mein Wunsch Datum aus.
Im Filter Plattform meine Wunsch Plattform (ebay, Webshop, etc)
Im Filter Wert, den Wunsch Wert (Artikelnummer, Haargel, etc.)

Anschließend erhalte ich ja die Ergebnisse in der Tabelle.

Unten rechts stehen dann die Menge der Aufträge sowie der Gesamt Umsatz.

Wenn nun die eigene Übersicht eine Tabelle in Anhängigkeit der oben gewählten Filter Ausgibt.

VK Brutto Gesamt | EK Netto Gesamt (In Relation zu den gewählten Filtern)

Könnte man sehr schnell ausrechnen wie Lukrativ ein Produkt ist.
Klar würde das auch über die Statistik gehen.
Aber es wäre Praktisch, sowas schnell über dieses Menü zu machen.

Die Eigene Übersicht müsste sich eben aus den Informationen aus den Gesetzten Filtern zusammen setzten.

Ändere ich quasi den Filter Wert von "Haargel" in eine spezielle "Artikelnummer", müsste sich dann auch die Tabelle ändern.


Ich hoffe man kann meinen Gedankengang verstehen. :)


JTL.JPG
 

Anhänge

  • JTL.JPG
    JTL.JPG
    361,6 KB · Aufrufe: 4

Andrej

Aktives Mitglied
26. März 2021
6
1
Hallo zusammen,
mich würde auch interessieren wie man sich die Cost of Goods sold anzeigen lassen kann, also EK netto der gesamten Verkäufe für einen bestimmten Zeitraum, das muss doch gehen.

Ich habe bisher nur das hier aber es scheint nicht ganz zu passen:

SELECT
COALESCE(CAST(SUM(ap.fAnzahl * ap.fEkNetto) AS DECIMAL(10,2)), 0.00) AS Gesamter_EK_Netto
FROM
Verkauf.tAuftragPosition AS ap
WHERE
ap.nType = 1
AND ap.kAuftrag IN (@Keys); -- Falls @Keys eine Liste ist
 
Zuletzt bearbeitet:

frankell

Sehr aktives Mitglied
9. September 2019
918
326
Flensburg
Hallo @Andrej,

kannst Du spezifizieren, was genau "nicht ganz zu passen" scheint?

Auf den ersten Blick scheint mir das soweit iO zu sein, wenn Du nur den Auftragspositionstyp "Artikel" betrachten möchtest.
 

Andrej

Aktives Mitglied
26. März 2021
6
1
Hi @frankell
wenn ich mir den letzten Monat anschaue, dann scheinen die Werte zu niedrig zu sein.
Ich habe noch ein anderes Skript gefunden und angepasst:


DECLARE @currentDate DATETIME
DECLARE @kFirma INT

SET @currentDate = GETDATE()

-- Hier die passende FirmenID eintragen
SET @kFirma = 1

SELECT
FORMAT(MONTH(lvA.dErstellt), '00') AS Monat,
YEAR(lvA.dErstellt) AS Jahr,
FORMAT(SUM(lvA.fAuftragswertNetto), 'N0') AS VK_Netto, -- Ohne Nachkommastellen
FORMAT(SUM(agg.EK_Netto), 'N0') AS EK_Netto -- Ohne Nachkommastellen
FROM
Verkauf.lvAuftragsverwaltung AS lvA
JOIN (
SELECT
ap.kAuftrag,
SUM(ap.fAnzahl * a.fEKNetto) AS EK_Netto
FROM
Verkauf.tAuftragPosition AS ap
JOIN tArtikel AS a ON ap.kArtikel = a.kArtikel -- Holt den EK aus tArtikel
WHERE
ap.nType = 1 -- Nur echte Artikelpositionen (keine Rabatte oder Versand)
GROUP BY
ap.kAuftrag
) AS agg ON lvA.kAuftrag = agg.kAuftrag
WHERE
lvA.dErstellt >= DATEADD(MONTH, -12, @currentDate)
AND lvA.dErstellt < @currentDate
AND lvA.kFirma = @kFirma
GROUP BY
YEAR(lvA.dErstellt),
MONTH(lvA.dErstellt)
ORDER BY
Jahr DESC,
Monat DESC;

Leider passt für mich das Ergebnis nicht, weder der VK netto scheint zu stimmen, noch der EK netto scheint zu stimmen. Ich möchte Wissen, was haben wir an VK netto und EK netto pro Monat.
 

Andrej

Aktives Mitglied
26. März 2021
6
1
Das Problem ist, dass wir Bestellungen in unterschiedlichen Währungen haben, also musste noch eine Währungsumrechnung gemacht werden und der EK wurde auch nicht korrekt berechnet.
Folgendes Skript scheint aber alles richtig zu machen, vielleicht hilft es jemandem weiter:


WITH EK_Aggregation AS (
SELECT
Bestellung.tBestellung_kBestellung AS kAuftrag,
CAST(SUM(Artikel.fEKNetto * Bestellung.nAnzahl) AS NUMERIC(20,2)) AS EK_Netto_EUR
FROM
tbestellpos AS Bestellung
LEFT JOIN
tArtikel AS Artikel ON Bestellung.tArtikel_kArtikel = Artikel.kArtikel
WHERE
Artikel.kStueckliste = 0 -- Nur echte Artikel, keine Stücklisten
GROUP BY
Bestellung.tBestellung_kBestellung
)

SELECT
MONTH(lvA.dErstellt) AS Monat,
YEAR(lvA.dErstellt) AS Jahr,
CAST(SUM(lvA.fAuftragswertNetto / NULLIF(lvA.fWaehrungsfaktor, 0)) AS NUMERIC(20,2)) AS VK_Netto_EUR,
CAST(SUM(lvA.fAuftragswertBrutto / NULLIF(lvA.fWaehrungsfaktor, 0)) AS NUMERIC(20,2)) AS VK_Brutto_EUR,
CAST(SUM(COALESCE(ek.EK_Netto_EUR, 0)) AS NUMERIC(20,2)) AS EK_Netto_EUR -- Einkaufspreis in EUR
FROM
Verkauf.lvAuftragsverwaltung AS lvA
LEFT JOIN
EK_Aggregation AS ek ON lvA.kAuftrag = ek.kAuftrag
WHERE
lvA.dErstellt >= DATEADD(MONTH, -12, GETDATE())
AND lvA.dErstellt < GETDATE()
AND lvA.kFirma = 1
GROUP BY
MONTH(lvA.dErstellt),
YEAR(lvA.dErstellt)
ORDER BY
Jahr DESC,
Monat DESC;
 

frankell

Sehr aktives Mitglied
9. September 2019
918
326
Flensburg
Für diejenigen, die nicht genau lesen können, was der Code macht:

Er enthält nicht nur eine Währungsumrechnung, sondern
- gibt die aggregierten Werte für die letzten 12 Monate vor dem aktuellen Datum aus
- gibt nur eine Firma aus, und zwar die erste (wichtig, falls man mehrere Firmen in der Wawi angelegt hat)
- es werden nicht nur Artikel ausgewertet, sondern auch alle anderen Auftragspositionstypen,
- filtert aber Stücklisten heraus.

Der zeitliche Filter funktioniert für das Beispiel des 10.1.25, 15:00:00 Uhr (Zeitpunkt des Aufrufens der Abfrage) wie folgt:
Berücksichtigt werden Aufträge vom 10.1.24, 15:00:00 Uhr bis inklusive 10.1.25 23:59:59 Uhr. Das bedeutet, dass ca. zwei Drittel des Januars 2024 ausgegeben werden und ca. ein Drittel des Januars 2025. Alle Monate dazwischen vollständig.

AND lvA.dErstellt < GETDATE() ist irgendwie überflüssig. Aber macht auch nichts kaputt.

Die Berechnung des EKs ist vom Prinzip her dieselbe. Es kommt nur wegen all des Vorgenannten etwas anders heraus. :)
 

Andrej

Aktives Mitglied
26. März 2021
6
1
Vielen Dank für deine Erklärung und Zusammenfassung. Ich habe das Skript noch etwas ausgebaut. Hier eine kurze Erklärung:


Folgender SQL-Code erstellt eine Übersicht der Verkäufe (VK) und Einkaufskosten (EK) der letzten 12 Monate in der JTL-Wawi. Er kann sowohl in JTL Ameise als auch unter Verkauf (F6) → Eigene Übersichten verwendet werden.

🔍 Funktionen des Codes:

Erfasst alle bezahlten und versandten Aufträge der letzten 12 Monate
Berechnet den Gesamtumsatz brutto und netto (VK Brutto, VK Netto)
Berechnet die Einkaufskosten netto (EK Netto), aber nur für echte Artikelpositionen
Unterscheidet Verkäufe nach Plattform (Amazon, eBay, Onlineshop, Wawi)
Berücksichtigt Währungsumrechnung mit fWaehrungsfaktor
Zeigt die Daten gruppiert nach Monat und Jahr an
Gilt nur für Firma 1 (lvA.kFirma = 1) – wichtig, falls mehrere Firmen in der Wawi angelegt sind


📌 Wichtige Filterbedingungen:

  • Es werden nur Aufträge berücksichtigt, die bezahlt (Zahlungsstatus = 2) und versendet (Lieferstatus = 5) sind.
  • Die Einkaufspreise (EK) werden nur für echte Artikelpositionen (nType = 1) berechnet (keine Rabatte oder Versandkosten).
  • Alle Umsätze werden in Euro umgerechnet basierend auf dem Währungsfaktor (fWaehrungsfaktor).

📊 Verwendung in JTL-Wawi:

1️⃣ In der JTL Ameise:
  • SQL unter "Eigene SQL-Abfragen" speichern und ausführen.
2️⃣ Im Verkauf (F6) → Eigene Übersichten:
  • In "Eigene Übersicht konfigurieren" einfügen, um die Werte direkt in JTL-Wawi anzuzeigen.
🚀 Perfekt für Umsatz- und Margenanalysen in JTL! 😊


WITH EK_Aggregation AS (
SELECT
Bestellung.tBestellung_kBestellung AS kAuftrag,
ROUND(SUM(Artikel.fEKNetto * Bestellung.nAnzahl), 2) AS EK_Netto_EUR
FROM
tbestellpos AS Bestellung
LEFT JOIN
tArtikel AS Artikel ON Bestellung.tArtikel_kArtikel = Artikel.kArtikel
WHERE
Artikel.kStueckliste = 0 -- Nur echte Artikel, keine Stücklisten
AND Bestellung.nType = 1 -- Nur echte Artikelpositionen (keine Rabatte oder Versand) für EK-Berechnung
GROUP BY
Bestellung.tBestellung_kBestellung
)

SELECT
FORMAT(MONTH(lvA.dErstellt), '00') AS Monat, -- Monat
YEAR(lvA.dErstellt) AS Jahr, -- Jahr
CAST(ROUND(SUM(lvA.fAuftragswertBrutto / NULLIF(lvA.fWaehrungsfaktor, 0)), 2) AS DECIMAL(20,2)) AS VK_Brutto_Gesamt, -- VK Brutto Gesamt
CAST(ROUND(SUM(lvA.fAuftragswertNetto / NULLIF(lvA.fWaehrungsfaktor, 0)), 2) AS DECIMAL(20,2)) AS VK_Netto_Gesamt, -- VK Netto Gesamt
CAST(ROUND(SUM(COALESCE(ek.EK_Netto_EUR, 0)), 2) AS DECIMAL(20,2)) AS EK_Netto_Gesamt, -- EK Netto Gesamt
CAST(ROUND(SUM(CASE WHEN lvA.nPlattformTyp = 6 THEN lvA.fAuftragswertBrutto / NULLIF(lvA.fWaehrungsfaktor, 0) ELSE 0 END), 2) AS DECIMAL(20,2)) AS Amazon_Brutto,
CAST(ROUND(SUM(CASE WHEN lvA.nPlattformTyp = 6 THEN lvA.fAuftragswertNetto / NULLIF(lvA.fWaehrungsfaktor, 0) ELSE 0 END), 2) AS DECIMAL(20,2)) AS Amazon_Netto,
CAST(ROUND(SUM(CASE WHEN lvA.nPlattformTyp = 5 THEN lvA.fAuftragswertBrutto / NULLIF(lvA.fWaehrungsfaktor, 0) ELSE 0 END), 2) AS DECIMAL(20,2)) AS Ebay_Brutto,
CAST(ROUND(SUM(CASE WHEN lvA.nPlattformTyp = 5 THEN lvA.fAuftragswertNetto / NULLIF(lvA.fWaehrungsfaktor, 0) ELSE 0 END), 2) AS DECIMAL(20,2)) AS Ebay_Netto,
CAST(ROUND(SUM(CASE WHEN lvA.nPlattformTyp = 2 THEN lvA.fAuftragswertBrutto / NULLIF(lvA.fWaehrungsfaktor, 0) ELSE 0 END), 2) AS DECIMAL(20,2)) AS Onlineshop_Brutto,
CAST(ROUND(SUM(CASE WHEN lvA.nPlattformTyp = 2 THEN lvA.fAuftragswertNetto / NULLIF(lvA.fWaehrungsfaktor, 0) ELSE 0 END), 2) AS DECIMAL(20,2)) AS Onlineshop_Netto,
CAST(ROUND(SUM(CASE WHEN lvA.nPlattformTyp = 1 THEN lvA.fAuftragswertBrutto / NULLIF(lvA.fWaehrungsfaktor, 0) ELSE 0 END), 2) AS DECIMAL(20,2)) AS Wawi_Brutto,
CAST(ROUND(SUM(CASE WHEN lvA.nPlattformTyp = 1 THEN lvA.fAuftragswertNetto / NULLIF(lvA.fWaehrungsfaktor, 0) ELSE 0 END), 2) AS DECIMAL(20,2)) AS Wawi_Netto
FROM
Verkauf.lvAuftragsverwaltung AS lvA
LEFT JOIN
EK_Aggregation AS ek ON lvA.kAuftrag = ek.kAuftrag
WHERE
lvA.dErstellt >= DATEADD(YEAR, -1, GETDATE()) -- Exakt 1 Jahr zurück ab jetzt
AND lvA.dErstellt < DATEADD(DAY, 1, CAST(GETDATE() AS DATE)) -- Bis heute 23:59:59
AND lvA.kFirma = 1
AND lvA.nZahlungStatus = 2 -- Nur bezahlte Aufträge
AND lvA.nLieferstatus = 5 -- Nur versandte Aufträge
GROUP BY
MONTH(lvA.dErstellt),
YEAR(lvA.dErstellt)
ORDER BY
Jahr DESC,
Monat DESC;
 
  • Gefällt mir
Reaktionen: frankell

Ähnliche Themen