Neu Summe der Bestllungen eines Lieferanten

McFunny

Sehr aktives Mitglied
13. Dezember 2006
1.271
15
Feldkirchen bei München
Hallo,

ich benötige der Summe der Bestellungen eines Lieferanten unter Einkauf/Bestellungen.
Also Lieferant XY gewählt und dann den Filtzer gesetzt Monat, Jahr etc.

Könnte mir damit jemand helfen, da ich keinerlei Ahnung von SQL besitze.

DANKE!!!

Lieben Gruß und allen noch ein gesunden Jahr 2022Q!

Sven
 

ToJo

Sehr aktives Mitglied
19. Oktober 2018
136
66
Husum
Oder man nimmt die Statistik, dann hat man die Zahlen auch mit wenigen Klicks! ;)

Hier mal der Weg zum Ziel, alles wichtige habe ich mal rot markiert.(Achtung das ist die Version 1.6, da wurden die Bezeichnungen etwas geändert, zb.Einkauf wurde umbenannt
in Beschaffung etc.)

Screenshot (72).png

Screenshot (73).png

Und hier das Ergebnis:

Screenshot (74).png

MfG
Torsten
 

tsadeghi

Aktives Mitglied
19. April 2020
30
15
Servus!

Mit dieser SQL Abfrage erhält man
  • die Anzahl der Bestellungen insgesamt
  • Den Einkauf der letzten 30 Tage
  • Den Einkauf der letzten 60 Tage
  • Year to Date Aktuelles Jahr
  • Year to Date Vorjahr
  • Gesamteinkauf
Alles Netto, alles basierend auf dem Erstelldatum der Bestellung. Keine weiteren Filter. Kann man natürlich nach Bedarf anpassen (z.B. nur bestätigte Bestellungen, nur erhaltene Positionen etc.)


Gruß Tara

Code:
SELECT
tl.cFirma AS 'Lieferant',
COUNT(DISTINCT tlbp.kLieferantenBestellung) AS '# Bestellungen',
jLetzte30Tage.absatz AS 'Letzte 30 Tage',
jLetzte60Tage.absatz AS 'Letzte 60 Tage',
jAktuellesJahr.absatz AS 'YTD Aktuell',
jVorherigesahr.absatz AS 'YTD Vorjahr',
FORMAT((CAST((CONVERT(VARCHAR,(SUM(tlbp.fMenge * (CAST(tlbp.fEKNetto AS MONEY)))),1)) AS MONEY)), 'C', 'de-de') AS 'Gesamt (Netto)'
FROM tLieferantenBestellungPos tlbp
INNER JOIN tLieferantenBestellung tlb ON tlb.kLieferantenBestellung = tlbp.kLieferantenBestellung
INNER JOIN tlieferant tl ON tl.kLieferant = tlb.kLieferant

LEFT JOIN (
    SELECT tl.kLieferant, FORMAT((CAST((CONVERT(VARCHAR,(SUM(tlbp.fMenge * (CAST(tlbp.fEKNetto AS MONEY)))),1)) AS MONEY)), 'C', 'de-de') AS absatz
 FROM tLieferantenBestellungPos tlbp
 INNER JOIN tLieferantenBestellung tlb ON tlb.kLieferantenBestellung = tlbp.kLieferantenBestellung
 INNER JOIN tlieferant tl ON tl.kLieferant = tlb.kLieferant
    WHERE tlb.kLieferant =
   (SELECT tlb.kLieferant
    FROM tLieferantenBestellung tlb
    WHERE tlb.kLieferantenBestellung = @Key
   )
        AND tlb.dErstellt > DATEADD(DAY, -30, getdate())
    GROUP BY tl.kLieferant
) AS jLetzte30Tage ON jLetzte30Tage.kLieferant = tl.kLieferant

LEFT JOIN (
    SELECT tl.kLieferant, FORMAT((CAST((CONVERT(VARCHAR,(SUM(tlbp.fMenge * (CAST(tlbp.fEKNetto AS MONEY)))),1)) AS MONEY)), 'C', 'de-de') AS absatz
 FROM tLieferantenBestellungPos tlbp
 INNER JOIN tLieferantenBestellung tlb ON tlb.kLieferantenBestellung = tlbp.kLieferantenBestellung
 INNER JOIN tlieferant tl ON tl.kLieferant = tlb.kLieferant
    WHERE tlb.kLieferant =
   (SELECT tlb.kLieferant
    FROM tLieferantenBestellung tlb
    WHERE tlb.kLieferantenBestellung = @Key
   )
        AND tlb.dErstellt > DATEADD(DAY, -60, getdate())
    GROUP BY tl.kLieferant
) AS jLetzte60Tage ON jLetzte60Tage.kLieferant = tl.kLieferant

LEFT JOIN (
    SELECT tl.kLieferant, FORMAT((CAST((CONVERT(VARCHAR,(SUM(tlbp.fMenge * (CAST(tlbp.fEKNetto AS MONEY)))),1)) AS MONEY)), 'C', 'de-de') AS absatz
 FROM tLieferantenBestellungPos tlbp
 INNER JOIN tLieferantenBestellung tlb ON tlb.kLieferantenBestellung = tlbp.kLieferantenBestellung
 INNER JOIN tlieferant tl ON tl.kLieferant = tlb.kLieferant
    WHERE tlb.kLieferant =
   (SELECT tlb.kLieferant
    FROM tLieferantenBestellung tlb
    WHERE tlb.kLieferantenBestellung = @Key
   )
        AND tlb.dErstellt BETWEEN DATEADD(yy, DATEDIFF(yy,0,GETDATE()), 0) AND GETDATE()
    GROUP BY tl.kLieferant
) AS jAktuellesJahr ON jAktuellesJahr.kLieferant = tl.kLieferant

LEFT JOIN (
    SELECT tl.kLieferant, FORMAT((CAST((CONVERT(VARCHAR,(SUM(tlbp.fMenge * (CAST(tlbp.fEKNetto AS MONEY)))),1)) AS MONEY)), 'C', 'de-de') AS absatz
 FROM tLieferantenBestellungPos tlbp
 INNER JOIN tLieferantenBestellung tlb ON tlb.kLieferantenBestellung = tlbp.kLieferantenBestellung
 INNER JOIN tlieferant tl ON tl.kLieferant = tlb.kLieferant
    WHERE tlb.kLieferant =
   (SELECT tlb.kLieferant
    FROM tLieferantenBestellung tlb
    WHERE tlb.kLieferantenBestellung = @Key
   )
  AND tlb.dErstellt BETWEEN DATEADD(yy, -1, GETDATE())  AND DATEADD(DAY, -365, getdate())

    GROUP BY tl.kLieferant
) AS jVorherigesahr ON jVorherigesahr.kLieferant = tl.kLieferant

WHERE tlb.kLieferant = (SELECT tlb.kLieferant FROM tLieferantenBestellung tlb WHERE tlb.kLieferantenBestellung = @Key)
GROUP BY tl.cFirma, jLetzte30Tage.absatz, jLetzte60Tage.absatz, jAktuellesJahr.absatz, jVorherigesahr.absatz
 
  • Gefällt mir
Reaktionen: MichaelH

MichaelH

Sehr aktives Mitglied
17. November 2008
14.631
1.965
Super !

Statt
  • Year to Date Vorjahr
wäre Gesamtvorjahr super, deine Datumsberechnung ist mir aber zu kompliziert um selber die Syntax nachzuschlagen ... ;)
 

tsadeghi

Aktives Mitglied
19. April 2020
30
15
Hi Michael,

ich habe die Spalte zusätzlich hinzugefügt.

Code:
SELECT
tl.cFirma AS 'Lieferant',
COUNT(DISTINCT tlbp.kLieferantenBestellung) AS '# Bestellungen',
jLetzte30Tage.absatz AS 'Letzte 30 Tage',
jLetzte60Tage.absatz AS 'Letzte 60 Tage',
jAktuellYTD.absatz AS 'YTD Aktuell',
jVorjahrYTD.absatz AS 'YTD Vorjahr',
jVorjahr.absatz AS 'Gesamt Vorjahr',
FORMAT((CAST((CONVERT(VARCHAR,(SUM(tlbp.fMenge * (CAST(tlbp.fEKNetto AS MONEY)))),1)) AS MONEY)), 'C', 'de-de') AS 'Gesamt (Netto)'
FROM tLieferantenBestellungPos tlbp
INNER JOIN tLieferantenBestellung tlb ON tlb.kLieferantenBestellung = tlbp.kLieferantenBestellung
INNER JOIN tlieferant tl ON tl.kLieferant = tlb.kLieferant

LEFT JOIN (
    SELECT tl.kLieferant, FORMAT((CAST((CONVERT(VARCHAR,(SUM(tlbp.fMenge * (CAST(tlbp.fEKNetto AS MONEY)))),1)) AS MONEY)), 'C', 'de-de') AS absatz
 FROM tLieferantenBestellungPos tlbp
 INNER JOIN tLieferantenBestellung tlb ON tlb.kLieferantenBestellung = tlbp.kLieferantenBestellung
 INNER JOIN tlieferant tl ON tl.kLieferant = tlb.kLieferant
    WHERE tlb.kLieferant =
   (SELECT tlb.kLieferant
    FROM tLieferantenBestellung tlb
    WHERE tlb.kLieferantenBestellung = @Key
   )
        AND tlb.dErstellt > DATEADD(DAY, -30, getdate())
    GROUP BY tl.kLieferant
) AS jLetzte30Tage ON jLetzte30Tage.kLieferant = tl.kLieferant

LEFT JOIN (
    SELECT tl.kLieferant, FORMAT((CAST((CONVERT(VARCHAR,(SUM(tlbp.fMenge * (CAST(tlbp.fEKNetto AS MONEY)))),1)) AS MONEY)), 'C', 'de-de') AS absatz
 FROM tLieferantenBestellungPos tlbp
 INNER JOIN tLieferantenBestellung tlb ON tlb.kLieferantenBestellung = tlbp.kLieferantenBestellung
 INNER JOIN tlieferant tl ON tl.kLieferant = tlb.kLieferant
    WHERE tlb.kLieferant =
   (SELECT tlb.kLieferant
    FROM tLieferantenBestellung tlb
    WHERE tlb.kLieferantenBestellung = @Key
   )
        AND tlb.dErstellt > DATEADD(DAY, -60, getdate())
    GROUP BY tl.kLieferant
) AS jLetzte60Tage ON jLetzte60Tage.kLieferant = tl.kLieferant

LEFT JOIN (
    SELECT tl.kLieferant, FORMAT((CAST((CONVERT(VARCHAR,(SUM(tlbp.fMenge * (CAST(tlbp.fEKNetto AS MONEY)))),1)) AS MONEY)), 'C', 'de-de') AS absatz
 FROM tLieferantenBestellungPos tlbp
 INNER JOIN tLieferantenBestellung tlb ON tlb.kLieferantenBestellung = tlbp.kLieferantenBestellung
 INNER JOIN tlieferant tl ON tl.kLieferant = tlb.kLieferant
    WHERE tlb.kLieferant =
   (SELECT tlb.kLieferant
    FROM tLieferantenBestellung tlb
    WHERE tlb.kLieferantenBestellung = @Key
   )
        AND tlb.dErstellt BETWEEN DATEADD(yy, DATEDIFF(yy,0,GETDATE()), 0) AND GETDATE()
    GROUP BY tl.kLieferant
) AS jAktuellYTD ON jAktuellYTD.kLieferant = tl.kLieferant

LEFT JOIN (
    SELECT tl.kLieferant, FORMAT((CAST((CONVERT(VARCHAR,(SUM(tlbp.fMenge * (CAST(tlbp.fEKNetto AS MONEY)))),1)) AS MONEY)), 'C', 'de-de') AS absatz
 FROM tLieferantenBestellungPos tlbp
 INNER JOIN tLieferantenBestellung tlb ON tlb.kLieferantenBestellung = tlbp.kLieferantenBestellung
 INNER JOIN tlieferant tl ON tl.kLieferant = tlb.kLieferant
    WHERE tlb.kLieferant =
   (SELECT tlb.kLieferant
    FROM tLieferantenBestellung tlb
    WHERE tlb.kLieferantenBestellung = @Key
   )
  AND tlb.dErstellt BETWEEN DATEADD(yy, -1, GETDATE())  AND DATEADD(DAY, -365, getdate())

    GROUP BY tl.kLieferant
) AS jVorjahrYTD ON jVorjahrYTD.kLieferant = tl.kLieferant

LEFT JOIN (
    SELECT tl.kLieferant, FORMAT((CAST((CONVERT(VARCHAR,(SUM(tlbp.fMenge * (CAST(tlbp.fEKNetto AS MONEY)))),1)) AS MONEY)), 'C', 'de-de') AS absatz
 FROM tLieferantenBestellungPos tlbp
 INNER JOIN tLieferantenBestellung tlb ON tlb.kLieferantenBestellung = tlbp.kLieferantenBestellung
 INNER JOIN tlieferant tl ON tl.kLieferant = tlb.kLieferant
    WHERE tlb.kLieferant =
   (SELECT tlb.kLieferant
    FROM tLieferantenBestellung tlb
    WHERE tlb.kLieferantenBestellung = @Key
   )
  AND YEAR(tlb.dErstellt) = YEAR(DATEADD(YEAR, -1, GETDATE()))

    GROUP BY tl.kLieferant
) AS jVorjahr ON jVorjahr.kLieferant = tl.kLieferant

WHERE tlb.kLieferant = (SELECT tlb.kLieferant FROM tLieferantenBestellung tlb WHERE tlb.kLieferantenBestellung = @Key)
GROUP BY tl.cFirma, jLetzte30Tage.absatz, jLetzte60Tage.absatz, jAktuellYTD.absatz, jVorjahrYTD.absatz, jVorjahr.absatz

Gruß Tara
 
  • Gefällt mir
Reaktionen: MichaelH
Ähnliche Themen
Titel Forum Antworten Datum
Neu Anzahl der URLs in der Sitemap ändern Allgemeine Fragen zu JTL-Shop 1
Neu Ab welcher JTL Wawi Version ist der OnPremise REST API Endpoint POST /v2/returns oder POST /v1/returns für Create Return verfügbar? Schnittstellen Import / Export 0
Neu ⚠️📦 ACHTUNG: Abkündigung der DHL-Schnittstelle zum 31.05.2026 News, Events und Umfragen 0
Neu Telemetrie-Datenerfassung in JTL-Shop 5.7.0: Bitte um Klarstellung der DSGVO-relevanten Aspekte Allgemeine Fragen zu JTL-Shop 4
Frage zur Speicherung der Produktbilder JTL-Wawi 1.11 1
Neu Der Inhalt / Text ist verschwunden – ist das ein Fehler JTL-Shop - Fehler und Bugs 0
Plattformabgleich Shop löschen - Wo ist das in der MySQL DB? JTL-Wawi 2.0 4
Anzeige der Variantenartikel JTL-Wawi 1.11 0
Neu Workflows speichern z.B. Rechnungen nicht mehr seid der 2.01 User helfen Usern - Fragen zu JTL-Wawi 1
Neu Ein Artikel in der Kategorie Allgemeine Fragen zu JTL-Shop 5
Neu Widerrufsbutton: Jeder, der den Button betätigt, kann das Widerrufsformular ausfüllen und absenden - auch ohne Bestellung? Allgemeine Fragen zu JTL-Shop 69
Neu Komma aus Produktbezeichnung soll als Bindestrich in der URL sein Allgemeine Fragen zu JTL-Shop 1
Retouren - Bearbeitung der Adressdaten JTL-Wawi 2.0 0
Update auf Shop 5.5.0 von 5.4.1 ist der Shop nicht mehr erreichbar Upgrade JTL-Shop4 auf JTL-Shop5 4
Neu Lieferadresse in PayPal-Transaktion weicht von der in der Wawi ab Plugins für JTL-Shop 0
Häufiges Aufhängen - vermutlich Probleme mit der Datenbank JTL-Wawi 2.0 13
Neu Wichtige Info: Abkündigung der DHL-Schnittstelle zum 31.05.2026 News, Events und Umfragen 0
Neu Fehler beim Update der Datenbank von 1.11.7 auf 2.0.1 JTL-Wawi - Fehler und Bugs 7
2.0.0: Aufruf der Plattform - Logbücher führt zu Crash der Wawi JTL-Wawi 2.0 0
Neu Falsche Berechnung der Kassen im Kundencenter - Multikasse noch aktiv Smalltalk 2
Probleme bei der Verbindung zur Datenbank JTL-Wawi 2.0 12
Neu Platz der Sidebar nutzen JTL-Shop - Ideen, Lob und Kritik 0
Worker versendet keine E-Mails mehr aus der Workflow Queue JTL-Wawi 2.0 6
Tabelle tfirma in der Shop-Datenbank ist leer Einrichtung JTL-Shop5 3
Neu Seit Update auf JTL-WaWi 2.0.0.0 keine Abholung der Kundendaten bei MediaSaturn-Bestellungen JTL-Wawi - Fehler und Bugs 7
Neu Anbindung der POS funktioniert nicht unter WAWI2.0.0 mit EcomData Hosting JTL-Wawi 2.0 7
Neu Hilfe bei der Entwicklung gesucht: Werde Tester für meine JTL-Shop Plugins Plugins für JTL-Shop 0
Neu 1000te Zugriffe aus der ganzen welt auf applepay.php Allgemeine Fragen zu JTL-Shop 2
Neu Fehlermeldung nach der Umstellung von DHL Versenden 4.0 JTL-Track&Trace - Fehler und Bugs 10
Neu Anzeigen der Zahlungsart, die bei der Zahlung gesetzt wird Eigene Übersichten in der JTL-Wawi 10
Gelöst Bekannte Störung: Fehler "Der Inhaltstyp text/html stimmt nicht mit text/xml überein" bei der Labelerstellung Gelöste Themen in diesem Bereich 1
Neu Praktiker: Ende der Beta-Phase User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTW Wawi hängt beim Bearbeiten der Druckvorlage für Mahnungen User helfen Usern - Fragen zu JTL-Wawi 0
Lieferadresse entspricht der Rechnungsadresse - vorausgewählt Checkout Einrichtung JTL-Shop5 2
Neu Anzeige Kategorie Pfad in der Übersicht User helfen Usern - Fragen zu JTL-Wawi 1
Neu Reihenfolge der Länder (bei der Versandkostenberechnung) Betrieb / Pflege von JTL-Shop 2
Neu CSS GeoIP MwSt.-Finder 2.7.1 verhindert das Anlegen von Shop-Kundenkonten aus der Wawi Plugins für JTL-Shop 1
Prüfung der UST-ID-Prüfung schlägt fehl. (Innergemeinschaftliche Lieferung) JTL-Wawi 1.8 2
Neu Name der Versandart im Shop anzeigen Allgemeine Fragen zu JTL-Shop 36
Neu Amazon Abgleich - seit heute 12:26Uhr keine Übernahme der Bestellungen über Worker Amazon-Anbindung - Fehler und Bugs 9
Artikelbezeichnung auf der Rechnung anpassen von "Artikelname" in "Kurzbeschreibung" JTL-Wawi 1.10 4
Neu Fehler 35 XLM entspricht nicht der Konvention Plugins für JTL-Shop 4

Ähnliche Themen