Umsatz pro Kunde für einen Zeitraum
Nettoumsatz pro Kunde (Ausgangsrechnungen abzüglich Gutschriften) zwischen zwei Daten, absteigend sortiert.
Tool
SELECT X.CardCode, X.CardName, SUM(X.NetSales) AS NetSales FROM ( SELECT T0.CardCode, T0.CardName, T0.DocTotal - T0.VatSum AS NetSales FROM OINV T0 WHERE T0.CANCELED = 'N' AND T0.DocDate BETWEEN '[%0]' AND '[%1]' UNION ALL SELECT T1.CardCode, T1.CardName, -(T1.DocTotal - T1.VatSum) FROM ORIN T1 WHERE T1.CANCELED = 'N' AND T1.DocDate BETWEEN '[%0]' AND '[%1]' ) X GROUP BY X.CardCode, X.CardName ORDER BY NetSales DESC
SELECT X."CardCode", X."CardName", SUM(X."NetSales") AS "NetSales" FROM ( SELECT T0."CardCode", T0."CardName", T0."DocTotal" - T0."VatSum" AS "NetSales" FROM OINV T0 WHERE T0."CANCELED" = 'N' AND T0."DocDate" BETWEEN '[%0]' AND '[%1]' UNION ALL SELECT T1."CardCode", T1."CardName", -(T1."DocTotal" - T1."VatSum") FROM ORIN T1 WHERE T1."CANCELED" = 'N' AND T1."DocDate" BETWEEN '[%0]' AND '[%1]' ) X GROUP BY X."CardCode", X."CardName" ORDER BY "NetSales" DESC
Welche Frage diese Abfrage beantwortet
Vor der monatlichen Vertriebsbesprechung möchte die Vertriebsleitung eine Rangliste der Kunden nach dem, was sie im Zeitraum tatsächlich gekauft haben. Retouren zählen dabei: Ein Kunde, dem 50.000 in Rechnung gestellt und anschließend 20.000 gutgeschrieben wurden, soll mit 30.000 erscheinen, nicht mit 50.000.
Sie möchten das als Diagramm, das Ihr Team filtern kann? So erstellen Sie ein SAP-Business-One-Dashboard ohne Power BI.
Beispielausgabe
Beispielwerte zur Veranschaulichung. Die Spalten sind bei Ihnen dieselben, die Zahlen stammen aus Ihrem Mandanten.
| CardCode | CardName | NetSales |
|---|---|---|
| C20000 | Acme Trading | 48250 |
| C30000 | Northwind Retail | 31720.5 |
| C40000 | Blue Harbor Foods | 18900 |
| C50000 | Summit Supplies | 6410.75 |
SQL Server und SAP HANA im Vergleich
Die Logik ist identisch; die HANA-Version setzt lediglich jede Spalte und jeden Alias in doppelte Anführungszeichen (T0."DocTotal", AS "NetSales"), weil HANA nicht in Anführungszeichen gesetzte Namen in Großbuchstaben umwandelt. Die unbenannte negative Spalte in der zweiten Hälfte des UNION ist in beiden Datenbanken unproblematisch, da die Spaltennamen aus dem ersten SELECT stammen.
Häufige Fehler und Lösungen
- Stornierte Rechnungen verändern weiterhin die Summen: Behalten Sie CANCELED = 'N' in beiden Hälften bei. In SAP B1 erhält eine stornierte Rechnung CANCELED = 'Y' und ihre Stornogutschrift CANCELED = 'C'; der Filter auf 'N' entfernt beide, sodass sie nicht versehentlich miteinander verrechnet werden.
- Conversion failed when converting date and/or time from character string: Wenn Sie außerhalb von SAP B1 testen, ersetzen Sie '[%0]' und '[%1]' durch Datumswerte im Format YYYYMMDD (zum Beispiel '20261001'). SQL Server liest dieses Format unabhängig von den Spracheinstellungen immer gleich.
- Summen weichen vom Fremdwährungs-Kontoauszug des Kunden ab: DocTotal und VatSum sind in Hauswährung. Verwenden Sie DocTotalFC - VatSumFC in beiden Hälften des UNION, um die Kunden in ihrer Belegwährung zu ranken.
- Summen weichen von der Verkaufsanalyse ab (Belegrabatt): Diese Abfrage liest DocTotal - VatSum aus dem Belegkopf; dieser Wert enthält bereits den Belegrabatt (OINV.DiscPrcnt) sowie die Fracht. Wenn Sie die Abfrage auf eine Summe über INV1.LineTotal umstellen, etwa für den Artikelumsatz, ist der Belegrabatt nicht in LineTotal enthalten und die Positionssumme weist zu viel Umsatz aus. Verwenden Sie SUM(T1.LineTotal * (1 - T0.DiscPrcnt / 100.0)) (HANA: SUM(T1."LineTotal" * (1 - T0."DiscPrcnt" / 100.0))) und ziehen Sie Gutschriften (ORIN/RIN1) mit demselben Faktor ab. Siehe SAP B1: Umsatzsumme stimmt nicht – Lösung für den Belegrabatt.
Verwandte Abfragen
Tabellenreferenz: Tabelle OINV (Ausgangsrechnung (Kopf)) · Tabelle ORIN (Ausgangsgutschrift (Kopf))
Drei Schritte, ohne Anmeldung
Die passende Version kopieren
Nutzen Sie den Tab SQL Server für MS-SQL-Datenbanken und den Tab HANA für SAP B1 auf HANA.
Abfragegenerator öffnen
Öffnen Sie in SAP Business One Extras → Abfragen → Abfragegenerator, fügen Sie die Abfrage ein und klicken Sie auf Ausführen.
Speichern und teilen
Klicken Sie auf Sichern, wählen Sie eine Kategorie und geben Sie der Abfrage einen Namen. Ihr Team kann sie dann über den Abfrage-Manager ausführen.
Fragen zu diesem Tool
Wie führe ich die Abfrage „Umsatz pro Kunde für einen Zeitraum“ in SAP Business One aus?
Kopieren Sie die Version, die zu Ihrer Datenbank passt, öffnen Sie Extras → Abfragen → Abfragegenerator, fügen Sie sie in das SQL-Feld ein und klicken Sie auf Ausführen. Speichern Sie die Abfrage, um sie später wiederzuverwenden.
Welche Tabellen verwendet diese Abfrage?
Sie liest OINV, ORIN aus dem Standardschema von SAP Business One. Benutzerdefinierte Felder sind nicht erforderlich.
Was gebe ich ein, wenn sich das Auswahlfenster öffnet?
Diese Abfrage verwendet Parameter: [%0] = Von-Datum, [%1] = Bis-Datum. SAP B1 zeigt beim Ausführen für jeden Parameter ein Auswahlfenster an.
Lässt sich daraus ein Dashboard oder eine Warnung machen?
Ja. Wir machen aus Abfragen Crystal Reports, Excel-Berichte, die sich selbst aktualisieren, SAP-B1-Warnungen oder WhatsApp-Nachrichten für Führungskräfte.
Für SAP-Business-One-Teams entwickelt
Brauchen Sie das direkt in SAP Business One?
Wir entwickeln Add-ons, Berichte und Integrationen für SAP B1 auf SQL Server und HANA. Beschreiben Sie Ihren Bedarf und erhalten Sie einen Festpreis, meist innerhalb von 24 Stunden.
