Gelöst Anzeige in der Artikelübersicht wie oft dieser Artikel verkauft wurde

  • Temporäre Senkung der Mehrwertsteuer Hier findet ihr gesammelt alle Informationen, Videos und Fragen inkl. Antworten: https://forum.jtl-software.de/threads/mehrwertsteuer-senkung-vom-01-07-31-12-2020-offizieller-diskussionthread-video.129542/

mlpro

Aktives Mitglied
7. November 2012
48
3
Hi,

also wenn es nur die Menge in Aufträgen ist ginge das so ganz einfach:

SQL:
SELECT    ROUND(ISNULL(SUM(tbestellpos.nAnzahl), 0.0), 2) AS 'Verkaufte Menge'
FROM dbo.tbestellpos
JOIN dbo.tBestellung ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE    tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tBestellung.cType = 'B' -- Nur Aufträge beachten, keine Angebote und Umlagerungen
Gruß

Manuel
Hallo Manuel,

der Code funktioniert einwandfrei, danke dafür.
Ich habe in der Ausgabe hinter dem Komma sehr viele Dezimalstellen, gibt es eine Möglichkeit diese zu reduzieren!?

Danke für deine Antwort im Voraus

Marc
 
Zuletzt von einem Moderator bearbeitet:

Omnideal-Böhling

Gut bekanntes Mitglied
30. April 2015
258
17
Hi,
eine überarbeitete Version des SQLs zu Beitrag Nr. 13
SQL:
SELECT    tPlattform.cName AS 'Plattform',
        ISNULL(jAktTag.absatz, 0) AS 'Heute',
        ISNULL(jGestern .absatz, 0) AS 'Gestern',    
        ISNULL(jAktMonat.absatz, 0) AS 'Akt. Monat',
        ISNULL(jVorMonat.absatz, 0) AS 'Vormonat',
        ISNULL(jLetzte30Tage.absatz, 0) AS 'Letzte 30 Tage',
        ISNULL(jLetzte3Monate.absatz, 0) AS 'Letzte 3 Monate',    
        ISNULL(jAktJahr.absatz, 0) AS 'Akt. Jahr',
        ISNULL(jLetzte365Tage.absatz, 0) AS 'Letzte 365 Tage',
        ISNULL(jVorjahr.absatz, 0) AS 'Vorjahr',
        ISNULL(jGesamt.absatz, 0) AS 'Gesamt'
FROM tPlattform
.....
Vielen Dank Thomas. Das ist doch schonmal mega ;)
 

gnarx

Sehr aktives Mitglied
18. Januar 2018
2.737
298
Super Sache recht herzlichen Dank. Wäre eigentlich noch ein Durschnittsverkaufspreis zu viel verlangt?
Kann ja auch ein neuer TAB sein.
 

tom10

Sehr aktives Mitglied
2. Oktober 2012
626
43
06774 Muldestausee
Wäre eigentlich noch ein Durschnittsverkaufspreis zu viel verlangt?
Kann ja auch ein neuer TAB sein.
Die letzte Version von Thomas entsprechend um Ø VK-Netto erweitert ;)
Bei den Werten werden keine Währungen beachtet.
Wer lieber den Brutto-Preis angezeigt haben möchte, tauscht 'fVKNetto' durch 'fVKPreis' aus

(super Einsatz von Thomas, großes DANKE an dieser Stelle :thumbsup:)

SQL:
SELECT tPlattform.cName AS 'Plattform',
        ISNULL(jAktTag.absatz, 0) AS 'Heute',
        ISNULL(jGestern .absatz, 0) AS 'Gestern',   
        ISNULL(jAktMonat.absatz, 0) AS 'Akt. Monat',
        ISNULL(jVorMonat.absatz, 0) AS 'Vormonat',
        ISNULL(jLetzte30Tage.absatz, 0) AS 'Letzte 30 Tage',
        ISNULL(jLetzte3Monate.absatz, 0) AS 'Letzte 3 Monate',   
        ISNULL(jAktJahr.absatz, 0) AS 'Akt. Jahr',
        ISNULL(jLetzte365Tage.absatz, 0) AS 'Letzte 365 Tage',
        ISNULL(jVorjahr.absatz, 0) AS 'Vorjahr',
        ISNULL(jGesamt.absatz, 0) AS 'Gesamt',
        ISNULL(jVKDurchschnitt.vknetto, 0) 'Ø VK-Netto'
FROM tPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
        AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
        AND DAY(tBestellung.dErstellt) = DAY(getdate())
    GROUP BY nPlatform
) AS jAktTag ON jAktTag.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
        AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
        AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))
    GROUP BY nPlatform
) AS jGestern ON jGestern.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
        AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
    GROUP BY nPlatform
) AS jAktMonat ON jAktMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
        AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))
    GROUP BY nPlatform
) AS jVorMonat ON jVorMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())
    GROUP BY nPlatform
) AS jLetzte30Tage ON jLetzte30Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())
    GROUP BY nPlatform
) AS jLetzte3Monate ON jLetzte3Monate.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
    GROUP BY nPlatform
) AS jAktJahr ON jAktJahr.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())
    GROUP BY nPlatform
) AS jLetzte365Tage ON jLetzte365Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))
    GROUP BY nPlatform
) AS jVorjahr ON jVorjahr.nPlatform = tPlattform.nPlattform
JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
    GROUP BY nPlatform
) AS jGesamt ON jGesamt.nPlatform = tPlattform.nPlattform
JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(AVG(tbestellpos.fVKNetto), 0.0)), 2) AS vknetto -- für Brutto 'fVKNetto' durch 'fVKPreis' ersetzen
    FROM tbestellpos
    JOIN tBestellung ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
    GROUP BY nPlatform
) AS jVKDurchschnitt ON jVKDurchschnitt.nPlatform = tPlattform.nPlattform
WHERE tPlattform.cName NOT IN ('XML-Import', 'Amazon.com.mx') -- XML-Import und Amazon Mexiko wollen wir exemplarisch ausschliessen
UNION
SELECT 'Alle Plattformen' AS 'Plattform',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
        AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
        AND DAY(tBestellung.dErstellt) = DAY(getdate())) AS 'Heute',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
        AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
        AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))) AS 'Gestern',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
        AND MONTH(tBestellung.dErstellt) = MONTH(getdate())) AS 'Akt. Monat',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
        AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))) AS 'Vormonat',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())) AS 'Letzte 30 Tage',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())) AS 'Letzte 3 Monate',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())) AS 'Akt. Jahr',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())) AS 'Letzte 365 Tage',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))) AS 'Vorjahr',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
    ) AS 'Gesamt',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(AVG(tbestellpos.fVKNetto), 0.0)), 2) AS vknetto -- für Brutto 'fVKNetto' durch 'fVKPreis' ersetzen
    FROM tbestellpos
    JOIN tBestellung ON tBestellung.kBestellung = tbestellpos.tBestellung_kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
    ) AS 'Ø VK-Netto'
ORDER BY Plattform
 
Zuletzt bearbeitet:

gnarx

Sehr aktives Mitglied
18. Januar 2018
2.737
298
Moin. Ich bin ja für sowas zu doof, sobald ich was ändere kann ich das nicht mehr abspeichern.

Frage kann man die Spaltenbreiten irgendwie mit angeben? Oder gleich dem sagen "Optimale Breite (alle)?
 

Manuel Pietzsch

JTL-Wawi
Mitarbeiter
2. Januar 2012
2.322
489
Hückelhoven
Die letzte Version von Thomas entsprechend um Ø VK-Netto erweitert ;)
Bei den Werten werden keine Währungen beachtet.

Hi,

habe den Währungsfaktor noch aufgenommen, jetzt wird immer auf Standardwährung gerechnet:

SQL:
SELECT tPlattform.cName AS 'Plattform',
        ISNULL(jAktTag.absatz, 0) AS 'Heute',
        ISNULL(jGestern .absatz, 0) AS 'Gestern',  
        ISNULL(jAktMonat.absatz, 0) AS 'Akt. Monat',
        ISNULL(jVorMonat.absatz, 0) AS 'Vormonat',
        ISNULL(jLetzte30Tage.absatz, 0) AS 'Letzte 30 Tage',
        ISNULL(jLetzte3Monate.absatz, 0) AS 'Letzte 3 Monate',  
        ISNULL(jAktJahr.absatz, 0) AS 'Akt. Jahr',
        ISNULL(jLetzte365Tage.absatz, 0) AS 'Letzte 365 Tage',
        ISNULL(jVorjahr.absatz, 0) AS 'Vorjahr',
        ISNULL(jGesamt.absatz, 0) AS 'Gesamt',
        ISNULL(jVKDurchschnitt.vknetto, 0) 'Ø VK-Netto'
FROM tPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
        AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
        AND DAY(tBestellung.dErstellt) = DAY(getdate())
    GROUP BY nPlatform
) AS jAktTag ON jAktTag.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
        AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
        AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))
    GROUP BY nPlatform
) AS jGestern ON jGestern.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
        AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
    GROUP BY nPlatform
) AS jAktMonat ON jAktMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
        AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))
    GROUP BY nPlatform
) AS jVorMonat ON jVorMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())
    GROUP BY nPlatform
) AS jLetzte30Tage ON jLetzte30Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())
    GROUP BY nPlatform
) AS jLetzte3Monate ON jLetzte3Monate.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
    GROUP BY nPlatform
) AS jAktJahr ON jAktJahr.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())
    GROUP BY nPlatform
) AS jLetzte365Tage ON jLetzte365Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))
    GROUP BY nPlatform
) AS jVorjahr ON jVorjahr.nPlatform = tPlattform.nPlattform
JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
    GROUP BY nPlatform
) AS jGesamt ON jGesamt.nPlatform = tPlattform.nPlattform
JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(AVG(tbestellpos.fVKNetto / tBestellung.fFaktor), 0.0)), 2) AS vknetto -- für Brutto 'fVKNetto' durch 'fVKPreis' ersetzen
    FROM tbestellpos
    JOIN tBestellung ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
    GROUP BY nPlatform
) AS jVKDurchschnitt ON jVKDurchschnitt.nPlatform = tPlattform.nPlattform
WHERE tPlattform.cName NOT IN ('XML-Import', 'Amazon.com.mx') -- XML-Import und Amazon Mexiko wollen wir exemplarisch ausschliessen
UNION
SELECT 'Alle Plattformen' AS 'Plattform',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
        AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
        AND DAY(tBestellung.dErstellt) = DAY(getdate())) AS 'Heute',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
        AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
        AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))) AS 'Gestern',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
        AND MONTH(tBestellung.dErstellt) = MONTH(getdate())) AS 'Akt. Monat',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
        AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))) AS 'Vormonat',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())) AS 'Letzte 30 Tage',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())) AS 'Letzte 3 Monate',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())) AS 'Akt. Jahr',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())) AS 'Letzte 365 Tage',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))) AS 'Vorjahr',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
    ) AS 'Gesamt',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(AVG(tbestellpos.fVKNetto / tBestellung.fFaktor), 0.0)), 2) AS vknetto -- für Brutto 'fVKNetto' durch 'fVKPreis' ersetzen
    FROM tbestellpos
    JOIN tBestellung ON tBestellung.kBestellung = tbestellpos.tBestellung_kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
    ) AS 'Ø VK-Netto'
ORDER BY Plattform
 
  • Gefällt mir
Reaktionen: tom10 und gnarx

gnarx

Sehr aktives Mitglied
18. Januar 2018
2.737
298
Könnte man nun noch in dem letzten Code aus Thread 31 noch die Retouren Quote mit hinten ran bekommen, also am Schluss.
Ich bekomme das nicht hin, immer wenn ich was ändere wird das Fenster rot umrandet und lässt sich nicht speichern.

Könnte man noch eine Spaltenbreite einbauen, die Spalten sind alle zu breit.
 

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.548
249
Köln
Könnte man noch eine Spaltenbreite einbauen, die Spalten sind alle zu breit.
Haben wir schon auf der Roadmap - jeder User wird sich die Spalten zurechtschieben können, wie er will. Das wird die Wawi sich dann merken.

Könnte man nun noch in dem letzten Code aus Thread 31 noch die Retouren Quote mit hinten ran bekommen, also am Schluss.
Bitte schön:
SQL:
SELECT tPlattform.cName AS 'Plattform',
        ISNULL(jAktTag.absatz, 0) AS 'Heute',
        ISNULL(jGestern .absatz, 0) AS 'Gestern',
        ISNULL(jAktMonat.absatz, 0) AS 'Akt. Monat',
        ISNULL(jVorMonat.absatz, 0) AS 'Vormonat',
        ISNULL(jLetzte30Tage.absatz, 0) AS 'Letzte 30 Tage',
        ISNULL(jLetzte3Monate.absatz, 0) AS 'Letzte 3 Monate',
        ISNULL(jAktJahr.absatz, 0) AS 'Akt. Jahr',
        ISNULL(jLetzte365Tage.absatz, 0) AS 'Letzte 365 Tage',
        ISNULL(jVorjahr.absatz, 0) AS 'Vorjahr',
        ISNULL(jGesamt.absatz, 0) AS 'Gesamt',
        ISNULL(jVKDurchschnitt.vknetto, 0) 'Ø VK-Netto',
        ISNULL(jRetourenGesamt.Retourenquote, '0%') AS 'Retourenquote'
FROM tPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
        AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
        AND DAY(tBestellung.dErstellt) = DAY(getdate())
    GROUP BY nPlatform
) AS jAktTag ON jAktTag.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
        AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
        AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))
    GROUP BY nPlatform
) AS jGestern ON jGestern.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
        AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
    GROUP BY nPlatform
) AS jAktMonat ON jAktMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
        AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))
    GROUP BY nPlatform
) AS jVorMonat ON jVorMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())
    GROUP BY nPlatform
) AS jLetzte30Tage ON jLetzte30Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())
    GROUP BY nPlatform
) AS jLetzte3Monate ON jLetzte3Monate.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
    GROUP BY nPlatform
) AS jAktJahr ON jAktJahr.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())
    GROUP BY nPlatform
) AS jLetzte365Tage ON jLetzte365Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))
    GROUP BY nPlatform
) AS jVorjahr ON jVorjahr.nPlatform = tPlattform.nPlattform
JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
    GROUP BY nPlatform
) AS jGesamt ON jGesamt.nPlatform = tPlattform.nPlattform
JOIN (
    SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(AVG(tbestellpos.fVKNetto / tBestellung.fFaktor), 0.0)), 2) AS vknetto -- für Brutto 'fVKNetto' durch 'fVKPreis' ersetzen
    FROM tbestellpos
    JOIN tBestellung ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
    GROUP BY nPlatform
) AS jVKDurchschnitt ON jVKDurchschnitt.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT jabsatzgesamt.nPlatform,
        CONCAT(( CASE WHEN jabsatzgesamt.absatz > 0.0 THEN ISNULL(retourengesamt.rm, 0.0) / jabsatzgesamt.absatz ELSE 0.0 END) * 100, '%') AS Retourenquote
FROM
(SELECT tbestellung.nPlatform,
    ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
  AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
    GROUP BY nPlatform) AS jabsatzgesamt
LEFT JOIN
    (SELECT nPlatform,
  ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
    FROM tbestellung
    JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
    JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
    WHERE    tRMRetourePos.kArtikel = @Key
    GROUP BY nPlatform) AS retourengesamt on retourengesamt.nPlatform=jabsatzgesamt.nPlatform)
        as jRetourenGesamt on jRetourenGesamt.nPlatform = tPlattform.nPlattform
UNION
SELECT 'Alle Plattformen' AS 'Plattform',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
        AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
        AND DAY(tBestellung.dErstellt) = DAY(getdate())) AS 'Heute',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
        AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
        AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))) AS 'Gestern',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
        AND MONTH(tBestellung.dErstellt) = MONTH(getdate())) AS 'Akt. Monat',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
        AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))) AS 'Vormonat',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tbestellung.cType = 'B'
        AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())) AS 'Letzte 30 Tage',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())) AS 'Letzte 3 Monate',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(getdate())) AS 'Akt. Jahr',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())) AS 'Letzte 365 Tage',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
        AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))) AS 'Vorjahr',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
    ) AS 'Gesamt',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(AVG(tbestellpos.fVKNetto / tBestellung.fFaktor), 0.0)), 2) AS vknetto -- für Brutto 'fVKNetto' durch 'fVKPreis' ersetzen
    FROM tbestellpos
    JOIN tBestellung ON tBestellung.kBestellung = tbestellpos.tBestellung_kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
        AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
    ) AS 'Ø VK-Netto',
(SELECT CONCAT(ROUND((CASE WHEN jabsatzgesamt.absatz > 0.0 THEN retourengesamt.rm / jabsatzgesamt.absatz ELSE 0.0 END)*100, 2), '%') as Retourenquote
FROM
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
    FROM tbestellung
    JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
    JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
    WHERE    tRMRetourePos.kArtikel = @Key) AS retourengesamt
JOIN
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B') AS jabsatzgesamt on 1=1) AS Retourenquote
ORDER BY Plattform
Übrigens: Hier wird XML-Import und Amazon.mx nicht ausgeschlossen als Plattform (im Gegensatz zu Beitrag #31).
 
Zuletzt von einem Moderator bearbeitet:
  • Gefällt mir
Reaktionen: gnarx

xadoX

Gut bekanntes Mitglied
11. September 2012
439
18
Wähle ich den Vater aus, werden die Verkäufe aller Kinder leider nicht summiert pro Plattform angeziegt. Könnte das noch ergänzt werden?
 
  • Gefällt mir
Reaktionen: emra und gnarx

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.548
249
Köln
Hi,
Wähle ich den Vater aus, werden die Verkäufe aller Kinder leider nicht summiert pro Plattform angeziegt. Könnte das noch ergänzt werden?
Das ist was aufwendiger, viel Schreibarbeit. Evtl. hilft dir das:
https://forum.jtl-software.de/threads/artikelverwaltung-komplexe-produkte-kpis.123326/
oder das hier:
https://forum.jtl-software.de/threa...erreichweite-zulauf-und-retourenquote.123212/

Werden die Absatzmengen aus den Aufträgen oder den Rechnungen gezogen?
Sie werden aus den Bestellungen gezogen. Nicht stornierte Bestellungen.
 

Stephan K.

Sehr aktives Mitglied
14. Mai 2014
734
84
Hi,

mit dem Update auf 1.5.11.2 wurden erneut unkommentiert die Variablen geändert. Das Skript funktioniert so nicht mehr ohne genaue Anzeige, welche Variable denn nun betroffen ist. Das ist ja leider ein gängiges Problem.

Hier sollte man UNBEDINGT was bei JTL generell ändern im Controlling und auch in den Ind.ListViews - sowohl im debugging als auch im automatisierten Update (Variable xxx wurde zu yyy korrigiert. Dies sind (ggf.)( geänderte Routinen: bla bla. Dann muss man nicht jede Individualisierung alle paar Wochen umschreiben (Workflows, Listenansichten).
 

tom10

Sehr aktives Mitglied
2. Oktober 2012
626
43
06774 Muldestausee
Vollkommen lautlos erfolgen die Änderungen nicht, dafür gibt es das DB Diff Tool: https://wawi-db.jtl-software.de/comparer
Trotzdem stimme ich dir zu, dass auf grundlegenede Änderungen an der Datenbank spätestens bei installieren eines Updates detailliert hingewiesen werden muss. Wobei ich es bei den Vorlagen, sprich List&Label, als weitaus schlimmer empfinde, dass selbst Servicepartner die bereitgestellten Varibalen nicht kennen ....

Zu deinem Problem, bei mir funktioniert das SQL auch bei der 1.5.11.2. Ich hab die letzte Variante (#34) ausprobiert.
 
Ähnliche Themen Forum Antworten Erstelldatum des Themas
Neu Anzeige ob ich tatsächlich in der Buybox bin JTL-Repricer für JTL-Wawi und Web 0
Neu Anzeige der Kategorien im Megamenue funktioniert nicht Templates für JTL-Shop 2
In Diskussion Packtisch -> Anzeige nur der Aufträge wie unter Wawi->Lieferscheine->Offen User helfen Usern - Fragen zu JTL-Wawi 1
Neu Anzeige der Artikelanmerkungen Problem mit Zeilenumbruch Individuelle Listenansichten in der JTL-Wawi 2
Gelöst Anzeige der Angebote ohne Mwst. und mit eBay-Anbindung - Ideen, Lob und Kritik 1
Neu EVO-Template Kategorie- und Banner Anzeige bzw. Design Templates für JTL-Shop 0
Neu Variantenartikel / Anzeige Vaterartikel in POS Allgemeine Fragen zu JTL-POS 1
Neu Anzeige E-Mail Eingang offene E-Mails Servicedesk Servicedesk (Beta) 2
Neu Anzeige wie oft ein Artikel insgesamt verkauft worden ist Individuelle Listenansichten in der JTL-Wawi 13
Neu Anzeige einer Box verändern Betrieb / Pflege von JTL-Shop 4
Neu Packtisch+ Anzeige von externer Auftragsnummer User helfen Usern - Fragen zu JTL-Wawi 3
Neu 3-fache Anzeige von Dropdownmenüs JTL-Shop - Fehler und Bugs 0
Gelöst Lieferstatus Anzeige ausblenden Gelöste Themen in diesem Bereich 2
Neu "Ab Preise" bei Artikeln ohne Vaterartikel falsche Anzeige Allgemeine Fragen zu JTL-Shop 4
Neu WAWI Mail-Einstellungen SMTP "Verbindung testen" Fehler beim Versenden der E-Mail JTL-Wawi - Fehler und Bugs 5
Neu Rechnungskorrektur nimmt gelegentlich nicht die Rechnungsnummer zu der sie erstellt wird JTL-Wawi - Fehler und Bugs 1
Neu Kopf der PDF-Rechnung zerschossen User helfen Usern - Fragen zu JTL-Wawi 9
Neu Sun Mi T2lite: Bekommen keinen Zugriff auf unserer Gerät in der Sun Mi Cloud da JTL da als Eigentümer registriert ist - Gerät über JTL gekauft Einrichtung / Updates von JTL-POS 1
In Bearbeitung Neue Produkte werden von der Wawi nicht nach POS synchronisiert. JTL-POS - Fehler und Bugs 10
Neu Kann man einen Artikel anlegen, der nur mit einem anderen Artikel zusammen im Shop bestellt werden kann? Arbeitsabläufe in JTL-Wawi 6
Neu Vorlage Artikeletikett - Menge der jew. Position Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Hinweistext bei mehr als zwei Rechnungspositionen / Summe der Positionen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Online Abgleich Shopware nach Änderung der Kategorien nicht mehr möglich 502 500 Onlineshop-Anbindung 1
Neu PHP wurde mit der Option JTL-Shop - BETA - Feedback und Bugmeldungen 2
Neu Amazon-Angeboten erstellen mit der Ameise: JTL-Ameise - Ideen, Lob und Kritik 2
Neu GLS Retourenschein der Lieferung beilegen User helfen Usern - Fragen zu JTL-Wawi 3
Neu Auftrag per Paypal bezahlt wird aber nicht in der Wawi zugeordnet User helfen Usern - Fragen zu JTL-Wawi 3
Neu Wie erkennt der Shop Händler Allgemeine Fragen zu JTL-Shop 8
Neu Vorschau in der Suchfunktion JTL-Search 1
Gelöst Anzahl der Artikel in einem Auftrag, bei denen ein Eigenes Feld existiert JTL-Workflows - Ideen, Lob und Kritik 0
Neu Absturz der Kasse JTL-POS - Fehler und Bugs 6
Gelöst Shoptyp der Lizenz stimmt nicht überein Gambio-Connector 1
Neu Wahl der Kategorie für Breadcrumb Navigation auf Artikeldetailseite Betrieb / Pflege von JTL-Shop 2
Neu Telefonische Hilfe beim Start mit der WAWI User helfen Usern - Fragen zu JTL-Wawi 1
Neu Die "alte Leier": EVO Template der schwarze Footer-Hintergrund muss weg! Templates für JTL-Shop 1
Neu Text für Differenzbesteuerung in der Rechnung User helfen Usern - Fragen zu JTL-Wawi 6
Gelöst Berichtscontainer der Rechnungsvorlage verändern Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu Wieso wird eine Änderung der Kunden-Emailadresse nicht in die Versandbenachrichtigung übernommen? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Daten der eigenen Kundenfelder gehen verloren JTL-Shop - Fehler und Bugs 0
Neu Installation der Wawi - Datenbankverwaltung - Server installieren User helfen Usern - Fragen zu JTL-Wawi 3
Neu Teilweise doppelt erstellte Aufträge in der Wawi seit 1.0.2.1 JTL-POS - Fehler und Bugs 16
Neu Keine Bildervorschau in der Kasse User helfen Usern - Fragen zu JTL-Wawi 0
Neu Hilfe bei der Seitengeschwindigkeit Allgemeine Fragen zu JTL-Shop 1
Neu JTL-Wawi 1.6 - Mit der Ameise Alles (!) exportieren... News, Events und Umfragen 4
Neu Die Seite, nach der Sie suchen, wurde verschoben. Besuchen Sie bitte /orders-v3/order/302...... Amazon-Anbindung - Fehler und Bugs 3
Neu Übersicht der Variablen eBay-Designvorlagen - Ideen, Lob und Kritik 0
Offen Änderung der MwSt von 19 auf 16% per Workflow - Fehler "Der Auftrag wurde bereits abgerechnet" JTL-Workflows - Ideen, Lob und Kritik 4
Neu Packtisch+ Automatisch verpacken anhand der Auftragsnummer JTL-Wawi - Ideen, Lob und Kritik 1
Neu Ausgabe Rohertrag - Durchschnittspreis der Artikel zu den Bestellungen Individuelle Listenansichten in der JTL-Wawi 2
Neu Alle Bons- Button "in der Wawi suchen" fehlt ! JTL-POS - Fehler und Bugs 4
Ähnliche Themen