Gelöst Artikelverwaltung > Artikelverkauf je Kunde

BPD_MR

Aktives Mitglied
13. September 2017
68
7
Hi guys,
auch wir finden die neuen Möglichkeiten unendlich geil, leider spricht hier keiner ordentlich SQL...
Könntet Ihr bitte die Query zur Verfügung stellen, die beim Artikel anzeigt von welchem Kunden er wie oft gekauft wurde?
Würde uns vor allem bei frischen Artikeln gut weiterhelfen...
vielen Dank & big up!!
 
Zuletzt bearbeitet:

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.476
179
Köln
Moin,
Könntet Ihr bitte die Query zur Verfügung stellen, die beim Artikel anzeigt von welchem Kunden er wie oft gekauft wurde?
Jop, bitteschön:

SQL:
SELECT
    tartikel.cArtNr AS ArtNr,
    jVerkaufProKunde.Kundennummer,
    jVerkaufProKunde.Kunde,
    jVerkaufProKunde.vk AS 'Ø VK-Brutto',
    jVerkaufProKunde.Auftraege,
    jVerkaufProKunde.Gesamtmenge,
    jVerkaufProKunde.DurchschnittProKauf AS 'Ø Menge pro Kauf',
    CONVERT(VARCHAR, jVerkaufProKunde.LetzterKauf, 104) AS 'Letzter Kauf'
FROM tartikel
LEFT JOIN (
    SELECT    tArtikel_kArtikel,
            tKunde.cKundenNr AS Kundennummer,
            CONCAT(tAdresse.cVorname, ' ', tAdresse.cName, ' ', tAdresse.cFirma) AS Kunde,
            ROUND(CONVERT(FLOAT, ISNULL(AVG(tbestellpos.fVKPreis), 0.0)), 2) AS vk,
            COUNT(DISTINCT(tBestellung.kBestellung)) AS Auftraege,
            ROUND(CONVERT(FLOAT, SUM(tbestellpos.nAnzahl)), 2) AS Gesamtmenge,
            CASE
                WHEN COUNT(DISTINCT(tBestellung.kBestellung)) > 0 THEN ROUND(CONVERT(FLOAT, SUM(tbestellpos.nAnzahl) / COUNT(DISTINCT(tBestellung.kBestellung))), 2)
                ELSE 0
            END AS DurchschnittProKauf,
            MAX(tBestellung.dErstellt) AS LetzterKauf
    FROM tbestellpos
    JOIN tBestellung ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    JOIN tKunde ON tBestellung.tKunde_kKunde = tkunde.kKunde
    JOIN tAdresse ON tAdresse.kKunde = tkunde.kKunde
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
    GROUP BY    tbestellung.tKunde_kKunde,
                tArtikel_kArtikel,
                tKunde.cKundenNr,
                tAdresse.cVorname,
                tAdresse.cName,
                tAdresse.cFirma
) AS jVerkaufProKunde ON jVerkaufProKunde.tArtikel_kArtikel = tartikel.kArtikel
WHERE tartikel.kArtikel = @Key
ORDER BY jVerkaufProKunde.LetzterKauf DESC
 

Anhänge

redheadman

Aktives Mitglied
3. August 2016
16
3
Wäre es möglich in die Query oben auch eine Spalte mit dem VK netto Preis einzufügen!

Vielen Dank
Denke das sollte passen:

Code:
SELECT
    tartikel.cArtNr AS ArtNr,
    jVerkaufProKunde.Kundennummer,
    jVerkaufProKunde.Kunde,
    jVerkaufProKunde.vk AS 'Ø VK-Netto',
    jVerkaufProKunde.Auftraege,
    jVerkaufProKunde.Gesamtmenge,
    jVerkaufProKunde.DurchschnittProKauf AS 'Ø Menge pro Kauf',
    CONVERT(VARCHAR, jVerkaufProKunde.LetzterKauf, 104) AS 'Letzter Kauf'
FROM tartikel
LEFT JOIN (
    SELECT    tArtikel_kArtikel,
            tKunde.cKundenNr AS Kundennummer,
            CONCAT(tAdresse.cVorname, ' ', tAdresse.cName, ' ', tAdresse.cFirma) AS Kunde,
            ROUND(CONVERT(FLOAT, ISNULL(AVG(tbestellpos.fVKNetto), 0.0)), 2) AS vk,
            COUNT(DISTINCT(tBestellung.kBestellung)) AS Auftraege,
            ROUND(CONVERT(FLOAT, SUM(tbestellpos.nAnzahl)), 2) AS Gesamtmenge,
            CASE
                WHEN COUNT(DISTINCT(tBestellung.kBestellung)) > 0 THEN ROUND(CONVERT(FLOAT, SUM(tbestellpos.nAnzahl) / COUNT(DISTINCT(tBestellung.kBestellung))), 2)
                ELSE 0
            END AS DurchschnittProKauf,
            MAX(tBestellung.dErstellt) AS LetzterKauf
    FROM tbestellpos
    JOIN tBestellung ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    JOIN tKunde ON tBestellung.tKunde_kKunde = tkunde.kKunde
    JOIN tAdresse ON tAdresse.kKunde = tkunde.kKunde
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
    GROUP BY    tbestellung.tKunde_kKunde,
                tArtikel_kArtikel,
                tKunde.cKundenNr,
                tAdresse.cVorname,
                tAdresse.cName,
                tAdresse.cFirma
) AS jVerkaufProKunde ON jVerkaufProKunde.tArtikel_kArtikel = tartikel.kArtikel
WHERE tartikel.kArtikel = @Key
ORDER BY jVerkaufProKunde.LetzterKauf DESC
 

Über uns

  • In unserem moderierten JTL-Forum könnt Ihr Euch themenbezogen mit der JTL-Community rund um die Produkte von JTL, passende Erweiterungen und den E-Commerce im Allgemeinen austauschen, Tipps und Tricks teilen sowie Verbesserungswünsche und Fehler diskutieren.

    Unsere Forumsnutzer helfen sich untereinander auch gerne weiter, wenn Sie mal nicht weiterkommen oder einen Ratschlag benötigen.

Schnell-Navigation

Benutzer Menü