Neu Aufträge - Ertragsübersicht pro Auftrag

Erik Hartnagel

Aktives Mitglied
14. April 2021
24
5
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
24
5
...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
24
5
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
121
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
631
200
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: 18
Ähnliche Themen
Titel Forum Antworten Datum
In Diskussion Workflow für bezahlte Aufträge eines bestimmten Lagers → Pickliste zu bestimmter Uhrzeit JTL-Workflows - Ideen, Lob und Kritik 2
Neu Kunden mit Kundenkonto bestellen als Gast und Aufträge sind dann nicht im Konto sichtbar Allgemeine Fragen zu JTL-Shop 4
Neu Aus JTL Wawi übernommene Aufträge in JTL POS ergänzen JTL-POS - Ideen, Lob und Kritik 0
JTL-Workflows >> Aufträge >> Ausgeliefert >> Abrechnungsposition für Versandkosten hinzufügen JTL-Wawi 1.10 3
alte Pending Aufträge löschen JTL-Wawi 1.10 0
Neu Mittels Ameise Aufträge aus 2 einzelnen CSV Dateien erstellen Schnittstellen Import / Export 5
Neu Rechnungskorrektur direkt aus „Verkauf → Aufträge → Mit Rechnung“ möglich? Arbeitsabläufe in JTL-Wawi 2
Neu Aufträge exportieren mit Angabe des Lieferanten JTL-Ameise - Ideen, Lob und Kritik 1
Neu alte Aufträge ausliefern ohne Label drucken und Abgleich mit eBay User helfen Usern - Fragen zu JTL-Wawi 2
nicht gelieferte Aufträge anzeigen JTL-Wawi 1.9 4
Probleme Rechnungserstellung/Upload FBA-Aufträge 1.10.12.0 JTL-Wawi 1.10 20
Neu Zusätzlicher Kundendisplay für Kassensystem iMin D4 Pro Einrichtung / Updates von JTL-POS 1
Neu JTL Shop - Rabatt pro Kunde möglich ? Allgemeine Fragen zu JTL-Shop 8
Neu Kategorierabatte pro Kunde im JTL-Shop Einrichtung von JTL-Shop4 2
Neu DHL Labels dauern aktuell "ewig", bis zu 30 Sekunden pro Packvorgang JTL-ShippingLabels - Fehler und Bugs 9
Neu Zusatzverpackung pro Artikel berechnen. Geht das? Allgemeine Fragen zu JTL-Shop 5
Neu Marge ausweisen (Gewinn pro Artikel) Eigene Übersichten in der JTL-Wawi 5
Neu 📢 Neues Plugin "JTL Translate Pro" by Nirico.de Plugins für JTL-Shop 0
Brandtexte pro Shop verschieden anzeigen lassen JTL-Wawi 1.10 0
Neu Sortierung/Artikel pro Seite /Galerie vs. Liste ausblenden Templates für JTL-Shop 7
Neu Hilfe bei Anpassung der JTL-Rechnung (v1.9.4.6) – EK pro Stück × Menge als Summe je Position + Privateinlage-Hinweis Dienstleistung, Jobs und Ähnliches 1
Gelöst Lenovo Idea Tab Pro JTL-POS - Fragen zu Hardware 1
Neu iMin D4 Pro noch mit Android 13 - EOL August 2025 - Update? JTL-POS - Fragen zu Hardware 0
Eine Artikelnummern pro Shop ? Und einen Hauptartikel ? JTL-Wawi 1.8 2
Neu Ausgabe - Rechnung speichern - dauert pro Rechnung 20 Sekunden JTL-Wawi - Fehler und Bugs 0

Ähnliche Themen