Neu Aufträge - Ertragsübersicht pro Auftrag

Erik Hartnagel

Aktives Mitglied
14. April 2021
22
3
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
3
...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
3
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
 
  • Gefällt mir
Reaktionen: Hubertus2313

bast-art83

Gut bekanntes Mitglied
16. April 2019
109
11
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
589
190
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: 8
Ähnliche Themen
Titel Forum Antworten Datum
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 Identische Aufträge - Picklisten-Erzeugung dauert extrem lange JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 3
Aufträge öffnen in der WAWI hinter der Hauptmaske Ebene JTL-Wawi 1.9 2
Neu Verpackte Aufträge User helfen Usern - Fragen zu JTL-Wawi 0
Neu WF: Aufträge nicht zusammenfassen, wenn der erste älter ist User helfen Usern - Fragen zu JTL-Wawi 2
Aufträge zu fälligen Abonnements automatisch erstellen JTL-Wawi 1.9 0
Neu Payone Plugin Zahlungen werden abgebucht aber keine Aufträge erstellt Plugins für JTL-Shop 0
In Diskussion POS generiert teilweise in Packtisch Aufträge zum Ausliefern JTL-POS - Fehler und Bugs 1
Neu Druckvorlage für Angebote/Aufträge -> Text Feld nur mit Bedingung anzeigen lassen User helfen Usern - Fragen zu JTL-Wawi 3
Amazon FBA Aufträge landen in der Beschaffung JTL-Wawi 1.8 2
Neu Custom Workflow Aufträge nach Artikelnummer sortieren User helfen Usern 6
Gelöst Aufträge aus POS kommen nicht in der Wawi an ... Einrichtung / Updates von JTL-POS 2
Neu Aufträge mit bestimmtem Rabattcode/Coupon ermitteln User helfen Usern - Fragen zu JTL-Wawi 2
Workflow Aufträge Versandart JTL-Wawi 1.8 0
Neu Einige Aufträge in Pending Amazon-Anbindung - Fehler und Bugs 2
Neu Faire.com Import Bestellungen / Aufträge - Lösungen? Interesse an Tool? Schnittstellen Import / Export 3
Neu 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
Eine Pickliste pro Auftrag mit mehreren Kunden auf einem Blatt JTL-Wawi 1.9 0
Gelöst Fragen zu L2s Pro JTL-POS - Fragen zu Hardware 1
Kategorierabatte pro Kunde verwalten JTL-Wawi 1.9 0
Neu iMin Swan 1 Pro Kabel für Kundendisplay JTL-POS - Fragen zu Hardware 3
Neu suche Plugin Kategorien/Artikel ausblenden pro User Plugins für JTL-Shop 1
Beantwortet Brauch ich pro Belegtyp 2 Druckvorlagen? Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0

Ähnliche Themen