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
265
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.784
304
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
632
44
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.784
304
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.340
510
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.784
304
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.554
255
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
19
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.554
255
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
745
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
632
44
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
In Bearbeitung Anzeige ob ich tatsächlich in der Buybox bin JTL-Repricer für JTL-Wawi und Web 10
Neu Anzeige der Kategorien im Megamenue funktioniert nicht Templates für JTL-Shop 2
Neu Recht für Dashboard Anzeige? Bin ich nur blind? User helfen Usern - Fragen zu JTL-Wawi 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
Neu Artikelübersetzung mit der Ameise User helfen Usern - Fragen zu JTL-Wawi 0
Neu Woher kommt der Fehler "CSRF-Warnung fuer Login: 1" in den JTL Logs? Allgemeine Fragen zu JTL-Shop 0
Gelöst DHL Retourelabel aus der WaWi heraus erzeut Fehlermeldung JTL-ShippingLabels - Fehler und Bugs 1
Neu Feld für "Letzter Bearbeiter" in der Spaltenansicht (Artikel) war leer User helfen Usern - Fragen zu JTL-Wawi 1
Neu Filter auf der Spalte - Sichtbarkeit User helfen Usern - Fragen zu JTL-Wawi 0
Neu Datum der Bestellung im Lieferschein Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu Fehler in Export- CSV der Bons JTL-POS - Fehler und Bugs 1
In Bearbeitung Auftrag auf Pickliste setzen fürht immer wieder zum Absturz der WAWI JTL-Wawi - Fehler und Bugs 3
Neu kein Abspeichern der Konfigurtion möglich Modified eCommerce-Connector 1
Neu Aufaddieren der Bestell-Liste User helfen Usern - Fragen zu JTL-Wawi 0
Neu Versandmeldung zeigt nur Teil der Bestellung trotz Gesamtversand Shopify-Connector 0
Neu Wer hat Erfahrung mit möglicher Bereicherung der Deutschen Post aus Eurer Portokasse? User helfen Usern - Fragen zu JTL-Wawi 1
In Bearbeitung [WAWI-50220] Gewicht in der Artikelübersicht wird abgeschnitten (nur 2-stellig) JTL-Wawi - Fehler und Bugs 3
Neu Übernahme der easybill E-Mail in JTL Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu Reihenfolge der Var-Kombis im Shop durcheinander Allgemeine Fragen zu JTL-Shop 7
Neu Nach Update von 4.05 auf 4.06 funktioniert der Bestellvorgang nicht mehr Installation / Updates von JTL-Shop 4
Neu Der Shoptyp der Lizenz stimmt nicht mit dem des Shops überein. Lizenz: WooCommerce 3 - Shop: WooCommerce 4Onlineshop-Abgleich beendet für 'Urbanwines. WooCommerce-Connector 0
Neu Anzahl Top-Produkte in der Mobile Ansicht Templates für JTL-Shop 8
Gelöst Das Feld "F.Zusatz" fehlt bei den Kundendaten/Rechnungsadresse in der Rechnungsmaske JTL-Wawi - Fehler und Bugs 3
Neu Mehrmaliger Abbruch der Verbindung zur TSE JTL-POS - Fehler und Bugs 5
Gelöst Wozu dient der Bereich "Aufträge - externe Rechnungen" ? Arbeitsabläufe in JTL-Wawi 5
In Bearbeitung Nachrichten und Preisvorschläge in der WAWI werden nicht mehr mir angezeigt eBay-Anbindung - Fehler und Bugs 2
Neu Gambio 3 Webshop-URL Fehlermeldung trotz korrekter Hinterlegung der URL im Kundencenter Gambio-Connector 3
Offen Abbrüche bei der Verwendung von JTL-WMS Mobile JTL-WMS - Fehler und Bugs 4
Neu Zurückstzen der IMP id's User helfen Usern - Fragen zu JTL-Wawi 1
In Bearbeitung Die Prüfung der Datenbank ist fehlgeschlagen WAWI MSSQL JTL-Wawi - Fehler und Bugs 2
Neu Vorschlag: Retoure - online aufrufen Button in der Übersicht JTL-Wawi - Ideen, Lob und Kritik 0
Neu Variablen in der eMails Allgemeine Fragen zu JTL-Shop 2
Gelöst [Deutsche Post] UPDATE: 09.10.20 Fehler beim erstellen der Versandetiketten Gelöste Themen in diesem Bereich 1
Gelöst [DPD] Fehlermeldungen beim erstellen der Versandetiketten 09.10.20 Gelöste Themen in diesem Bereich 1
Gelöst Der Server kann nicht auf diesem Port laufen... JTL-WMS - Fehler und Bugs 2
Neu Alternativtext bei Bildnamen können in der Wawi nicht mehr gespeichert werden Shopware-Connector 8
In Bearbeitung Aufträge fehlen in der Wawi JTL-Wawi - Fehler und Bugs 3
In Bearbeitung Artikelsuche in der Positionszuordnung im Sofortauftrag funktioniert nicht nach Kategorie JTL-Wawi - Fehler und Bugs 1
Neu POS-Vorgänge auch in der Wawi anzeigen Allgemeine Fragen zu JTL-POS 8
In Bearbeitung HTML Editor in der Wawi und https eBay-Designvorlagen - Fehler und Bugs 1
Neu Anzahl der Pakete auf dem Versandlabel User helfen Usern - Fragen zu JTL-Wawi 0
Neu Bilder nach Änderung der Beschreibung weg. User helfen Usern - Fragen zu JTL-Wawi 3
Neu Plötzlich: Die Update Anweisung setht in Konflikt mit der Check Einschränkung CK:tlagerbestand_fknAuftraegen_1 User helfen Usern - Fragen zu JTL-Wawi 0
Gelöst Meldung: Der HTTP-Dienst auf https://api.jtl-shipping.de/JtlWebApi.svc ist nicht verfügbar. Möglicherweise ist d Gelöste Themen in diesem Bereich 3
Ähnliche Themen