Neu Aufträge - Ertragsübersicht pro Auftrag

Erik Hartnagel

Aktives Mitglied
14. April 2021
22
4
Hallo Zusammen,

ich habe mir ein SQL gebastelt um die EK-Summe, die VK-Summe (netto), den Roherlös in € und den Deckungsbeitrag in % - pro Auftrag anzuzeigen.
Nun gibt es in manchen Aufträgen Positionen in denen der VK-Betrag 0 (Null) ist!
Daraus resultiert eine Division durch Null - führt zum Absturz und es wird nichts angezeigt.

1. Frage:
Kann mir bitte jemand helfen bei der Berechnung des DB´s die Prüfung auf Division durch Null zu implementieren?

2. Frage:
Wie kann ich alle Datensätze die ich oben angezeigt habe verwenden (@Key, oder @Keys)-Syntax ??
Wenn ich mir damit alle Aufträge von einem Monat anzeige, dann erhalte ich eine Liste aller Aufträge in diesem Monat.
Wenn ich dann zu einem anderen Monat wechsle, dann alle Aufträge aus diesem Monat.
Also immer alle Datensätze die oben angezeigt werden.

Für Hilfe wäre ich dankbar :)

Hier der Code:

SELECT
bk.cBestellNr AS 'AB-Nr',
FORMAT(bk.dErstellt, 'dd.MM.yyy') AS 'AB-Datum',
kd.cFirma AS 'Kunde',
kd.cPLZ AS 'PLZ',
kd.cOrt AS 'Ort',
FORMAT(SUM(a.fEKNetto * bp.nAnzahl), '###,##0.00') AS 'SummeEK',
FORMAT(SUM((bp.fVKNetto - (bp.fVKNetto * bp.fRabatt / 100))*bp.nAnzahl),'###,##0.00') AS 'SummeVK',
FORMAT((SUM((bp.fVKNetto - (bp.fVKNetto * bp.fRabatt / 100))*bp.nAnzahl)) - (SUM(a.fEKNetto * bp.nAnzahl)),'###,##0.00') AS 'Gewinn',
FORMAT((SUM(a.fEKNetto * bp.nAnzahl) / SUM((bp.fVKNetto - (bp.fVKNetto * bp.fRabatt / 100))*bp.nAnzahl)-1)*-100,'###,##0.00') AS 'DB'
FROM [eazybusiness].[dbo].[tBestellung] bk
JOIN [eazybusiness].[dbo].[tbestellpos] bp
ON bk.kBestellung = bp.tBestellung_kBestellung
JOIN [eazybusiness].[dbo].[tAdresse] kd
ON bk.tKunde_kKunde = kd.kKunde
JOIN [eazybusiness].[dbo].[tArtikel] a
ON bp.[tArtikel_kArtikel] = a.kArtikel
WHERE bk.cType='B' and bk.dErstellt >= '01.09.2023'
GROUP BY bk.cBestellNr, bk.dErstellt, kd.cFirma, kd.cPLZ, kd.cOrt
ORDER BY bk.cBestellNr DESC
 

Erik Hartnagel

Aktives Mitglied
14. April 2021
22
4
...testweise habe ich in dem SQL die Abfrage auf Datum >= 01.09.2023 eingefügt, hier sollten aber alle Datensätze aus der aktuell angezeigten Liste verwendet werden.
Diente nur zum testen...
 

Erik Hartnagel

Aktives Mitglied
14. April 2021
22
4
Manchmal muss man eine Pause machen um die Lösung zu finden.
Hatte NULLIF falsch angewendet und konnte in anderen Beispielen die Anwendung von IN (@Keys) finden, und schon funktioniert es :)

Hier das fertige SQL, falls es jemand einsetzen oder für sich modifizieren möchte:

SELECT
bk.cBestellNr AS 'AB-Nr',
FORMAT(bk.dErstellt, 'dd.MM.yyy') AS 'AB-Datum',
kd.cFirma AS 'Kunde',
kd.cPLZ AS 'PLZ',
kd.cOrt AS 'Ort',
FORMAT(SUM(a.fEKNetto * bp.nAnzahl), '###,##0.00') AS 'SummeEK',
FORMAT(SUM((bp.fVKNetto - (bp.fVKNetto * bp.fRabatt / 100))*bp.nAnzahl),'###,##0.00') AS 'SummeVK',
FORMAT((SUM((bp.fVKNetto - (bp.fVKNetto * bp.fRabatt / 100))*bp.nAnzahl)) - (SUM(a.fEKNetto * bp.nAnzahl)),'###,##0.00') AS 'Ertrag',
FORMAT((SUM(a.fEKNetto * bp.nAnzahl) / NULLIF(SUM((bp.fVKNetto - (bp.fVKNetto * bp.fRabatt / 100))*bp.nAnzahl),0)-1)*-100,'###,##0.00') AS 'DB'
FROM [eazybusiness].[dbo].[tBestellung] bk
JOIN [eazybusiness].[dbo].[tbestellpos] bp
ON bk.kBestellung = bp.tBestellung_kBestellung
JOIN [eazybusiness].[dbo].[tAdresse] kd
ON bk.tKunde_kKunde = kd.kKunde
JOIN [eazybusiness].[dbo].[tArtikel] a
ON bp.[tArtikel_kArtikel] = a.kArtikel
WHERE bp.tBestellung_kBestellung IN (@Keys)
GROUP BY bk.cBestellNr, bk.dErstellt, kd.cFirma, kd.cPLZ, kd.cOrt
ORDER BY bk.cBestellNr DESC
 

bast-art83

Gut bekanntes Mitglied
16. April 2019
112
12
Guten Abend,

ich danke dir für den SQL. Ich habe leider ein Problem / Fehler gefunden. Bei Kunden, die mehrere Adressen haben, werden mir diese doppelt angezeigt. Woher kommt das und wie löse ich das? Ich verwende die WAWI 1.7.11

Mit freundlichem Gruß
Sebastian Glaser
 

jtldudel

Sehr aktives Mitglied
4. Januar 2018
604
193
tAdresse enthält alle Adressen eines Kunden, d.h. beim Join wird für jeden Eintrag in tAdresse eine Zeile produziert.

Vermute Mal man will die Adresse aus dem Auftrag haben, da würde ich einen anderen Weg gehen z.b. über die Verkauf.lvAuftragsverwaltung (oder so, bin gerade nicht am Rechner) dort steht meine ich die Adresse des jeweiligen Auftrags auch drin. Dann ist die Zuordnung eindeutig.
 

AK57234

Aktives Mitglied
22. Februar 2019
15
1
Hallo zusammen,
habe diesen Thread zum DB eines Auftrages gefunden. Wir würden das auch sehr gebrauchn können.
Der Ansatz oben ist schon ganz gut.
Ist es nicht aber sinnvoller dies direkt im Angebot/Auftrag in der Zusammenfasung einzubauen?
Das müsste dann aber wohl von JTL eingebaut werden.
 

Anhänge

  • zusammenfassung.jpg
    zusammenfassung.jpg
    18,2 KB · Aufrufe: 15
Ähnliche Themen
Titel Forum Antworten Datum
Neu Aufträge mit nicht verfügbaren Artikeln automatisch zurückhalten User helfen Usern - Fragen zu JTL-Wawi 2
Neu Aufträge mit falsche Steuerart angelegt User helfen Usern - Fragen zu JTL-Wawi 0
Neu POS Aufträge in der Wawi nicht abgeschlossen, stehen somit im Versand als "offen" JTL-POS - Fehler und Bugs 1
Neu Dashboard - Überwachung offener Aufträge User helfen Usern - Fragen zu JTL-Wawi 5
Beantwortet Kosten für Aufträge aus Shopware 5 Shopware-Connector 1
Neu Picken nur von dem Lagerplatz, der 100 % der Aufträge bedienen kann Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 2
Aufträge stornieren JTL-Wawi 1.9 4
Neu Wie finde ich per SQL heraus welche Aufträge auf Teillieferbar stehen? JTL Ameise - Eigene Exporte 1
Neu Identische Aufträge - gleiche Stückliste aber unterschiedliche Artikelnummer im Auftrag Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 5
Neu Insel Aufträge automatisch Stornieren User helfen Usern - Fragen zu JTL-Wawi 4
JTL WaWi 1.9.4.4 will keine Amazon Aufträge abholen. Ebay klappt aber JTL-Wawi 1.9 3
In Diskussion Lieferanten Rückstand - Aufträge markieren JTL-Workflows - Ideen, Lob und Kritik 0
Neu Stornierte Aufträge werden mit "Ist bezahlt" JA gekennzeichnet JTL-Wawi - Ideen, Lob und Kritik 21
Neu Verdandliste Pro Paket das Gewicht mit ausgeben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Sql Abfrage VK Preise pro Kundengruppe für Grafana JTL-Wawi 1.8 9
Neu Artikelübersicht zeigt 2 Bilder pro Artikel oder leeren Rahmen Allgemeine Fragen zu JTL-Shop 5
Neu Gibt es einen Import von Artikeltexten die pro Artikel als .txt geliefert werden? JTL-Ameise - Ideen, Lob und Kritik 1
Neu ACF | Advanced Custom Fields Pro Unterstützung (Mit Workaround) WooCommerce-Connector 2
Neu MW Attachment Pro | Mediendateien in der Bestellbestätigungsmail Plugins für JTL-Shop 1
Gelöst iMin Swan 1 Pro Kundendisplay zeigt nur verkleinerte 1:1 Kopie des kompletten Hauptbildschirmes JTL-POS - Fragen zu Hardware 3
Gelöst Alternativen zu Sumni T2 - nur iMin D4 Pro? JTL-POS - Fragen zu Hardware 3

Ähnliche Themen