Inhaltsverzeichnis

    Eigene Übersichten für Artikel

    In JTL-Wawi haben Sie die Möglichkeit, mithilfe von SQLs eigene Übersichten zu erstellen. In dieser Dokumentation finden Sie Beispiel-SQLs für eigene Übersichten in der Artikelverwaltung von JTL-Wawi. Um zu erfahren, wie Sie eigene Übersichten erstellen, lesen Sie die Dokumentation Eigene Übersichten erstellen.

    Abverkauf pro Kunde

    Mit dieser eigenen Übersicht sehen Sie alle Kunden, die den markierten Artikel jemals gekauft haben. Die folgenden Informationen werden dargestellt:

    • Artikelnummer
    • Kundennummer
    • Kunde
    • Durchschn. VK-Netto
    • Durchschn. VK-Brutto
    • Aufträge
    • Gesamtmenge
    • Durchschn. Menge pro Kauf
    • Letzter Kauf
    -- Standardartikel
    SELECT	
    			Art.cArtNr AS "ArtNr",
    			K.cKundenNr AS Kundennummer,
    			CONCAT(Adr.cVorname, ' ', Adr.cName, ' ', Adr.cFirma) AS Kunde,
    			CONVERT(DECIMAL(25, 2), ISNULL(AVG(VAP.fVKNetto), 0.0)) AS "Ø VK-Netto",
    			CONVERT(DECIMAL(25, 2), ISNULL(AVG(ISNULL(CONVERT(DECIMAL(25, 2), VAP.fVkNetto * ((100 + VAP.fMwSt) / 100)), 0.0)), 0.0)) AS "Ø VK-Brutto",
    			COUNT(DISTINCT(VA.kAuftrag)) AS Auftraege,
    			CONVERT(DECIMAL(25, 2), SUM(VAP.fAnzahl)) AS Gesamtmenge,
    			CASE
    				WHEN COUNT(*) > 0 THEN CONVERT(DECIMAL(25, 2), SUM(VAP.fAnzahl) / COUNT(*))
    				ELSE 0
    			END AS "Ø Menge pro Kauf",
    			MAX(VA.dErstellt) AS "Letzter Kauf"
    FROM		Verkauf.tAuftragPosition AS VAP
    JOIN		Verkauf.tAuftrag AS VA ON VAP.kAuftrag = VA.kAuftrag
    JOIN		dbo.tKunde AS K ON VA.kKunde = K.kKunde
    JOIN		dbo.tAdresse AS Adr ON Adr.kKunde = K.kKunde
    JOIN		dbo.tArtikel AS Art ON Art.kArtikel = VAP.kArtikel
    WHERE		VAP.kArtikel = @Key
    			AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    			AND VA.nType = 1 -- 1 = Auftrag
    GROUP BY	VA.kKunde, Art.kVaterArtikel, K.cKundenNr, Adr.cVorname, Adr.cName, Adr.cFirma, Art.cArtNr
    
    UNION ALL
    
    -- Vaterartikel bei Varkombis
    SELECT
    			CONCAT('Alle Kinder von: ', VaterArt.cArtNr) AS "ArtNr",
    			K.cKundenNr AS Kundennummer,
    			CONCAT(Adr.cVorname, ' ', Adr.cName, ' ', Adr.cFirma) AS Kunde,
    			CONVERT(DECIMAL(25, 2), ISNULL(AVG(VAP.fVKNetto), 0.0)) AS "Ø VK-Netto",
    			CONVERT(DECIMAL(25, 2), ISNULL(AVG(ISNULL(CONVERT(DECIMAL(25, 2), VAP.fVkNetto * ((100 + VAP.fMwSt) / 100)), 0.0)), 0.0)) AS "Ø VK-Brutto",	
    			COUNT(DISTINCT(VA.kAuftrag)) AS Auftraege,
    			CONVERT(DECIMAL(25, 2), SUM(VAP.fAnzahl)) AS Gesamtmenge,
    			CASE
    				WHEN COUNT(*) > 0 THEN CONVERT(DECIMAL(25, 2), SUM(VAP.fAnzahl) / COUNT(*))
    				ELSE 0
    			END AS "Ø Menge pro Kauf",
    			MAX(VA.dErstellt) AS "Letzter Kauf"
    FROM		Verkauf.tAuftragPosition AS VAP
    JOIN		Verkauf.tAuftrag AS VA ON VAP.kAuftrag = VA.kAuftrag
    JOIN		dbo.tKunde AS K ON VA.kKunde = K.kKunde
    JOIN		dbo.tAdresse AS Adr ON Adr.kKunde = K.kKunde
    JOIN		dbo.tArtikel AS KindArt ON KindArt.kArtikel = VAP.kArtikel
    JOIN		dbo.tArtikel AS VaterArt ON VaterArt.kArtikel = @Key
    WHERE		KindArt.kVaterArtikel = @Key
    			AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    			AND VA.nType = 1 -- 1 = Auftrag
    GROUP BY	KindArt.kVaterArtikel, VaterArt.cArtNr, K.kKunde, K.cKundenNr, Adr.cVorname, Adr.cName, Adr.cFirma
    
    ORDER BY	'Letzter Kauf' DESC

    Aktivität pro Plattform

    Mit dieser eigenen Übersicht sehen Sie alle Plattformen, auf denen der Artikel aktuell aktiv ist. Das können über JTL-eazyAuction angebundene Marktplätze sowie Marktplätze über Drittanbindungen sein aber auch Onlineshops und POS-Kassen. Die folgenden Informationen werden dargestellt:

    • Plattform
    • Aktuell angebotene Menge
    • Aktueller Preis
    • Absatz in den letzten 30 Tagen
    • Absatz in den letzten 90 Tagen
    • Absatz in den letzten 365 Tagen
    • Absatz Gesamt
    • Durchschn. VK-Brutto
    • Angebots-ID, z. B. ASIN von Amazon oder ItemID von eBay
    -- Amazon Angebote
    SELECT		Pf.cName AS "Plattform",
    			AmSs.nQuantity AS "Menge",
    			CONVERT(DECIMAL(25, 4), AmSs.fPrice) AS "Akt. Preis",
    			ISNULL(VALast30d.fAbsatz, 0) AS "Absatz 30 Tage",
    			ISNULL(VALast90d.fAbsatz, 0) AS "Abs. 90 Tage",
    			ISNULL(VALast365d.fAbsatz, 0) AS "Abs. 365 Tage",
    			ISNULL(VAGesamt.fAbsatz, 0) AS "Abs. Gesamt",
    			ISNULL(VAAvg.vk, 0) AS "Ø VK-Brutto",
    			ISNULL(AmSs.cASIN1, '') AS "ID"
    FROM		dbo.tPlattform AS Pf
    JOIN		( -- läuft er überhaupt auf amazon?
    				SELECT	AmA.nPlattform,
    						AmA.nQuantity,
    						CONVERT(DECIMAL(25, 4), AmA.fPrice) AS fPrice,
    						AmA.cASIN1
    				FROM	dbo.pf_amazon_angebot AS AmA
    				JOIN	dbo.pf_amazon_angebot_mapping AS AmAM ON AmAM.cSellerSKU = AmA.cSellerSKU AND AmAM.kUser = AmA.kUser
    				WHERE	AmAM.kArtikel = @Key
    			) AS AmSs /* Amazon Subselect */ ON AmSs.nPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    						AND VA.dErstellt > DATEADD(DAY, -30, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS VALast30d ON VALast30d.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    						AND VA.dErstellt > DATEADD(DAY, -90, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS VALast90d ON VALast90d.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    						AND VA.dErstellt > DATEADD(DAY, -365, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS VALast365d ON VALast365d.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    				GROUP BY VA.kPlattform
    			) AS VAGesamt ON VAGesamt.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(AVG(ISNULL(CONVERT(DECIMAL(25,13), VAP.fVkNetto * ((100 + VAP.fMwSt) / 100)), 0.0)), 0.0)) AS vk
    				FROM	Verkauf.tAuftragPosition AS VAP
    				JOIN	Verkauf.tAuftrag AS VA ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    				GROUP BY VA.kPlattform
    			) AS VAAvg ON VAAvg.kPlattform = Pf.nPlattform
    
    UNION ALL
    
    -- eBay Angebote - normale Artikel
    SELECT		Pf.cName AS "Plattform",
    			ISNULL(EbSs.Quantity, 0.0) AS "Menge",
    			CONVERT(DECIMAL(25, 4), ISNULL(EbSs.StartPrice, 0.0)) AS "Akt. Preis",
    			ISNULL(VALast30d.fAbsatz, 0.0) AS "Absatz 30 Tage",
    			ISNULL(VALast90d.fAbsatz, 0.0) AS "Abs. 90 Tage",
    			ISNULL(VALast365d.fAbsatz, 0.0) AS "Abs. 365 Tage",
    			ISNULL(VAGesamt.fAbsatz, 0.0) AS "Abs. Gesamt",
    			ISNULL(VAAvg.vk, 0.0) AS "Ø VK-Brutto",
    			ISNULL(EbSs.ItemID, '') AS "ID"
    FROM		dbo.tPlattform AS Pf
    JOIN		( --läuft er überhaupt auf ebay?
    				 SELECT	EbSites.kPlattform,
    						EbI.Quantity,
    						EbI.StartPrice AS StartPrice,
    						EbI.ItemID
    				FROM	dbo.ebay_item AS EbI
    				JOIN	dbo.ebay_xx_sites AS EbSites ON EbSites.SiteID = EbI.SiteID
    				WHERE	EbI.kArtikel = @Key
    						AND EbI.Status IN (3, 7)
    			) AS EbSs /* Ebay Subselect */ ON EbSs.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    						AND VA.dErstellt > DATEADD(DAY, -30, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS VALast30d ON VALast30d.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    						AND VA.dErstellt > DATEADD(DAY, -90, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS VALast90d ON VALast90d.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    						AND VA.dErstellt > DATEADD(DAY, -365, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS VALast365d ON VALast365d.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    				GROUP BY VA.kPlattform
    			) AS VAGesamt ON VAGesamt.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(AVG(ISNULL(CONVERT(DECIMAL(25,13), VAP.fVkNetto * ((100 + VAP.fMwSt) / 100)), 0.0)), 0.0)) AS vk
    				FROM	Verkauf.tAuftragPosition AS VAP
    				JOIN	Verkauf.tAuftrag AS VA ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    				GROUP BY VA.kPlattform
    			) AS VAAvg ON VAAvg.kPlattform = Pf.nPlattform
    
    UNION
    
    -- eBay Angebote - als Kindartikel im eBay Variationsangebot
    SELECT		Pf.cName AS "Plattform",
    			EbSs.fAnzahl AS "Menge",
    			CONVERT(DECIMAL(25, 4), EbSs.fPreis) AS "Akt. Preis",
    			ISNULL(VALast30d.fAbsatz, 0.0) AS "Absatz 30 Tage",
    			ISNULL(VALast90d.fAbsatz, 0.0) AS "Abs. 90 Tage",
    			ISNULL(VALast365d.fAbsatz, 0.0) AS "Abs. 365 Tage",
    			ISNULL(VAGesamt.fAbsatz, 0.0) AS "Abs. Gesamt",
    			ISNULL(VAAvg.vk, 0.0) AS "Ø VK-Brutto",
    			CONCAT('Varkombi-Kind: ', EbSs.ItemID) AS "ID"
    FROM		dbo.tPlattform AS Pf
    JOIN		( --läuft er überhaupt auf ebay als Kindartikel?
    				SELECT	EbSites.kPlattform,
    						CONVERT(INT, EbI2K.fAnzahl) AS fAnzahl,
    						EbI2K.fPreis AS fPreis,
    						EbI.ItemID
    				FROM	dbo.ebay_item AS EbI
    				JOIN	dbo.ebay_xx_sites AS EbSites ON EbSites.SiteID = EbI.SiteID
    				JOIN	dbo.ebay_item2kombi AS EbI2K ON EbI2K.kItem = EbI.kItem
    				JOIN	dbo.tArtikel AS Art ON Art.kEigenschaftKombi = EbI2K.kEigenschaftKombi
    				WHERE	Art.kArtikel = @Key
    						AND EbI.Status IN (3, 7)
    			) AS EbSs /* Ebay Subselect */ ON EbSs.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,	
    						CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    						AND VA.dErstellt > DATEADD(DAY, -30, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS VALast30d ON VALast30d.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    						AND VA.dErstellt > DATEADD(DAY, -90, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS VALast90d ON VALast90d.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    						AND VA.dErstellt > DATEADD(DAY, -365, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS VALast365d ON VALast365d.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    				GROUP BY VA.kPlattform
    			) AS VAGesamt ON VAGesamt.kPlattform = Pf.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 2), ISNULL(AVG(ISNULL(CONVERT(DECIMAL(25,13), VAP.fVkNetto * ((100 + VAP.fMwSt) / 100)), 0.0)), 0.0)) AS vk
    				FROM	Verkauf.tAuftragPosition AS VAP
    				JOIN	Verkauf.tAuftrag AS VA ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1 -- 1 = Auftrag
    				GROUP BY VA.kPlattform
    			) AS VAAvg ON VAAvg.kPlattform = Pf.nPlattform
    
    UNION
    
    -- eBay Angebote - als Kindartikel im eBay Variationsangebot
    SELECT		Sh.cName AS "Plattform",
    			ISNULL(ShSs.fVerfuegbar, 0.0) AS "Menge",
    			CONVERT(DECIMAL(25, 4), dbo.ifGetPrice(ShSs.kArtikel, 0, 1, ShSs.kShop, 1)) AS "Akt. Preis",
    			ISNULL(VALast30d.fAbsatz, 0.0) AS "Absatz 30 Tage",
    			ISNULL(VALast90d.fAbsatz, 0.0) AS "Abs. 90 Tage",
    			ISNULL(VALast365d.fAbsatz, 0.0) AS "Abs. 365 Tage",
    			ISNULL(VAGesamt.fAbsatz, 0.0) AS "Abs. Gesamt",
    			ISNULL(VAAvg.vk, 0.0) AS "Ø VK-Brutto",
    			ShSs.cArtNr AS "ID"
    FROM		dbo.tShop AS Sh
    JOIN		( --läuft er in Shops oder POS, etc.?
    				SELECT		ArtSh.kShop,
    							ArtSh.kArtikel,
    							CONVERT(DECIMAL(25, 2), ISNULL(LB.fVerfuegbar, 0)) AS fVerfuegbar,
    							Art.cArtNr
    				FROM		dbo.tArtikel AS Art
    				JOIN		dbo.tArtikelShop AS ArtSh ON ArtSh.kArtikel = Art.kArtikel
    				LEFT JOIN	dbo.vLagerbestandEx AS LB ON LB.kArtikel = Art.kArtikel
    				WHERE		Art.kArtikel = @Key
    							AND ArtSh.cDelInet <> 'Y'
    			) AS ShSs /* Shop Subselect */ ON ShSs.kShop = Sh.kShop
    LEFT JOIN	(
    				SELECT		VA.kShop,
    							CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM		Verkauf.tAuftrag AS VA
    				JOIN		Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE		VAP.kArtikel = @Key
    							AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    							AND VA.nType = 1 -- 1 = Auftrag
    							AND VA.dErstellt > DATEADD(DAY, -30, GETDATE())
    				GROUP BY	VA.kShop
    			) AS VALast30d ON VALast30d.kShop = Sh.kShop
    LEFT JOIN	(
    				SELECT		VA.kShop,
    							CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM		Verkauf.tAuftrag AS VA
    				JOIN		Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE		VAP.kArtikel = @Key
    							AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    							AND VA.nType = 1 -- 1 = Auftrag
    							AND VA.dErstellt > DATEADD(DAY, -90, GETDATE())
    				GROUP BY	VA.kShop
    			) AS VALast90d ON VALast90d.kShop = Sh.kShop
    LEFT JOIN	(
    				SELECT		VA.kShop,
    							CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM		Verkauf.tAuftrag AS VA
    				JOIN		Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE		VAP.kArtikel = @Key
    							AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    							AND VA.nType = 1 -- 1 = Auftrag
    							AND VA.dErstellt > DATEADD(DAY, -365, GETDATE())
    				GROUP BY kShop
    			) AS VALast365d ON VALast365d.kShop = Sh.kShop
    LEFT JOIN	(
    				SELECT		VA.kShop,
    							CONVERT(DECIMAL(25, 2), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM		Verkauf.tAuftrag AS VA
    				JOIN		Verkauf.tAuftragPosition as VAP ON VA.kAuftrag = VAP.kAuftrag
    				WHERE		VAP.kArtikel = @Key
    							AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    							AND VA.nType = 1 -- 1 = Auftrag
    				GROUP BY	VA.kShop
    			) AS VAGesamt ON VAGesamt.kShop = Sh.kShop
    LEFT JOIN	(
    				SELECT		VA.kShop,
    							CONVERT(DECIMAL(25, 2), ISNULL(AVG(ISNULL(CONVERT(DECIMAL(25,13), VAP.fVkNetto * ((100 + VAP.fMwSt) / 100)), 0.0)), 0.0)) AS vk
    				FROM		Verkauf.tAuftragPosition AS VAP
    				JOIN		Verkauf.tAuftrag AS VA ON VAP.kAuftrag = VA.kAuftrag
    				WHERE		VAP.kArtikel = @Key
    							AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    							AND VA.nType = 1 -- 1 = Auftrag
    				GROUP BY	VA.kShop
    			) AS VAAvg ON VAAvg.kShop = Sh.kShop
    

    Cross-Seller

    Mit dieser eigenen Übersicht sehen Sie, wie häufig die Cross-Selling-Artikel des markierten Artikels verkauft werden. Auf diese Weise können Sie feststellen, ob ein Cross-Seller weiterhin Sinn ergibt oder besser ausgetauscht werden sollte. Die folgenden Informationen werden dargestellt:

    • Cross-Selling-Gruppe
    • Artikelnummer
    • Cross-Selling Artikel
    • Anzahl gemeinsame Käufe
    SELECT		XSGrp.cName AS "Cross-Selling-Gruppe",
    			Art.cArtNr AS "Artikelnummer",
    			ArtBe.cName AS "Cross-Selling Artikel",
    			(
    				SELECT COUNT(*)
    				FROM	(
    							SELECT	kAuftrag
    							FROM	Verkauf.tAuftragPosition AS VAP
    							WHERE	VAP.kArtikel = XS.kXSellArtikel
    							INTERSECT
    							SELECT	kAuftrag
    							FROM	Verkauf.tAuftragPosition AS VAP
    							WHERE	VAP.kArtikel = XS.kArtikel
    						) AS Kaeufe
    			) AS "Anzahl gemeinsame Käufe"
    FROM		dbo.tXSell AS XS
    JOIN		dbo.tArtikel AS Art ON Art.kArtikel = XS.kXSellArtikel
    CROSS APPLY	(SELECT TOP(1) kSprache FROM dbo.tSpracheUsed AS Sp WHERE Sp.nStandard = 1) AS SprU
    JOIN		dbo.tXSellGruppe AS XSGrp ON XSGrp.kXSellGruppe = XS.kXSellGruppe AND XSGrp.kSprache = SprU.kSprache
    JOIN		dbo.tArtikelBeschreibung AS ArtBe ON ArtBe.kArtikel = XS.kXSellArtikel AND ArtBe.kSprache = SprU.kSprache AND ArtBe.kPlattform = 1
    WHERE		XS.kArtikel = @Key
    ORDER BY	XSGrp.cName, ArtBe.cName
    

    FBA-Bestand

    Mit dieser eigenen Übersicht sehen Sie Ihre FBA-Bestände im Detail, sodass Sie unter anderem auch den Bestand sehen, der aktuell reserviert ist. Diese Informationen werden für alle verknüpften Amazon FBA-Angebote zu dem markierten Artikel dargestellt. Die folgenden Informationen werden dargestellt:

    • Artikelnummer
    • Zulauf (in JTL-Wawi)
    • Wawi Verfügbar
    • Gesamt Verfügbar
    • FBA-Angebot (ja/nein)
    • FBA Verfügbar
    • FBA Warehouse (physikalischer Bestand = FBA Verfügbar + FBA Unsellable + FBA Reserved)
    • FBA Unsellable (Zustandsbedingt nicht verkaufbarer Bestand)
    • FBA Reserved (Reservierter Bestand = Menge, die derzeit kommissioniert, verpackt und versandt wird oder die für Messungen, Stichproben oder andere interne Prozesse ausgelagert wird)
    • FBA Total (Gesamtbestand = FBA Warehouse + FBA Inbound Working + FBA Inbound Shipped)
    • FBA Inbound Working (Menge, die Sie als Zulauf bei Amazon angemeldet haben)
    • FBA Inbound Shipped (Menge, die Sie als Zulauf bei Amazon angemeldet haben und für die Sie eine Tracking-ID hinterlegt haben)
    • FBA Receiving (Menge, die bei Amazon eingetroffen ist und gerade bearbeitet wird)
    SELECT		Art.cArtNr AS Artikelnummer,
    			ROUND(CONVERT(DECIMAL(25, 2), LB.fZulauf), 2) AS Zulauf,
    			ROUND(CONVERT(DECIMAL(25, 2), LB.fVerfuegbar), 2) AS "Wawi Verfügbar",
    			ROUND(CONVERT(DECIMAL(25, 2), LB.fVerfuegbar + ISNULL(FBA.FBA_verfuegbar, 0)), 2) AS "Gesamt Verfügbar",
    			CASE WHEN FBA.FBA_verfuegbar IS NULL THEN 'Nein' ELSE 'Ja' END AS "FBA Angebot?",
    			ISNULL(FBA.FBA_verfuegbar, 0) AS "FBA Verfügbar",
    			ISNULL(FBA.FBA_warehouse, 0) AS "FBA Warehouse",
    			ISNULL(FBA.FBA_unsellabe, 0) AS "FBA Unsellable",
    			ISNULL(FBA.FBA_reserved, 0) AS "FBA Reserved",
    			ISNULL(FBA.FBA_total, 0) AS "FBA Total",
    			ISNULL(FBA.FBA_inboundWorking, 0) AS "FBA Inbound Working",
    			ISNULL(FBA.FBA_inboundShipped, 0) AS "FBA Inbound Shipped",
    			ISNULL(FBA.FBA_receiving, 0) AS "FBA Receiving"
    FROM		dbo.tArtikel AS Art
    JOIN		dbo.tLagerbestand AS LB ON LB.kArtikel = Art.kArtikel
    LEFT JOIN	( 
    				SELECT	AmAM.kArtikel,
    						SUM(AmFBA.nQuantity) AS FBA_verfuegbar,
    						SUM(AmFBA.nQtyWarehouse) AS FBA_warehouse,
    						SUM(AmFBA.nQtyUnsellable) AS FBA_unsellabe,
    						SUM(AmFBA.nQtyReserved) AS FBA_reserved,
    						SUM(AmFBA.nQtyTotal) AS FBA_total,
    						SUM(AmFBA.nQtyInboundWorking) AS FBA_inboundWorking,
    						SUM(AmFBA.nQtyInboundShipped) AS FBA_inboundShipped,
    						SUM(AmFBA.nQtyReceiving) AS FBA_receiving
    				FROM	dbo.pf_amazon_angebot_mapping AS AmAM
    				JOIN	dbo.pf_amazon_angebot_fba AS AmFBA ON AmAM.cSellerSKU = AmFBA.cSellerSKU AND AmAM.kUser = AmFBA.kUser
    				WHERE	AmAM.kArtikel = @Key
    				GROUP BY AmAM.kArtikel
    			) AS FBA ON FBA.kArtikel = Art.kArtikel
    WHERE		Art.kArtikel = @Key
    

    Kategoriepfade

    Mit dieser eigenen Übersicht sehen Sie auf einen Blick alle Kategoriepfade des markierten Artikels. Die folgenden Informationen werden dargestellt:

    • Kategoriepfad
    • Kategorietiefe
    WITH cteKategorien AS
    (
    	SELECT	Kat.kKategorie,
    			Kat.kOberKategorie,
    			1 AS Tiefe,
    			CAST(KatSpr.cName AS NVARCHAR(500)) AS Kategoriepfad
    	FROM	dbo.tKategorie AS Kat
    	JOIN	dbo.tSpracheUsed AS SprU ON nStandard = 1
    	JOIN	dbo.tKategorieSprache AS KatSpr ON KatSpr.kKategorie = Kat.kKategorie AND KatSpr.kSprache = SprU.kSprache
    	JOIN	dbo.tKategorieartikel AS KatArt ON KatArt.kKategorie = Kat.kKategorie
    	WHERE	KatArt.kArtikel = @Key
    
    	UNION ALL
    
    	SELECT	Kat.kKategorie,
    			Kat.kOberKategorie,
    			CteKat.Tiefe + 1 AS Tiefe,
    			CAST(KatSpr.cName + ' -> ' + CteKat.Kategoriepfad AS NVARCHAR(500)) AS Kategoriepfad
    	FROM	dbo.tKategorie AS Kat
    	JOIN	dbo.tSpracheUsed AS SprU ON nStandard = 1
    	JOIN	dbo.tKategorieSprache AS KatSpr ON KatSpr.kKategorie = Kat.kKategorie AND KatSpr.kSprache = SprU.kSprache
    	JOIN	cteKategorien AS CteKat ON Kat.kKategorie = CteKat.kOberKategorie
    )
    SELECT	Kat.Kategoriepfad,
    		Kat.Tiefe AS Kategorietiefe
    FROM	cteKategorien AS Kat
    WHERE	Kat.kOberKategorie = 0
    GROUP BY Kat.Kategoriepfad, Kat.Tiefe
    

    Komplexe Artikel-KPIs

    Mit dieser eigenen Übersicht sehen Sie umfangreiche Informationen bezüglich Zulauf, Lagerreichweite, Absatz und Retouren. Variationskombinationen sowie Stücklisten werden komponentenweise und zusätzlich aggregiert dargestellt. Die folgenden Informationen werden dargestellt:

    • Artikeltyp
    • Artikelnummer
    • Artikelname
    • Verfügbar
    • Zulauf
    • Lagerreichweite
    • Absatz in den letzten 30 Tagen
    • Absatz in den letzten 90 Tagen
    • Absatz in den letzten 365 Tagen
    • Absatz Gesamt
    • Durchschn. VK-Brutto
    • Retourenquote
    • Abverkaufsquote (auf Monatssicht)
    -- Vaterartikel bei Varkombis
    SELECT  
    			'Vater (kumuliert)' AS "Artikeltyp",
    			ArtSs.cArtNr AS ArtNr,
    			CONCAT('(Vater kumuliert) ', ArtSs.cName) AS Artikelname, 
    			CONVERT(DECIMAL(25, 2), SUM(LB.fVerfuegbar)) AS "Verfügbar",
    			CONVERT(DECIMAL(25, 2), SUM(LB.fZulauf)) AS "Zulauf",
    			CASE
    				WHEN ISNULL(SUM(VALast365d.fAbsatz), 0) > 0 THEN CONCAT(ROUND(CONVERT(DECIMAL(25, 4), SUM(LB.fVerfuegbar) / (ISNULL(SUM(VALast365d.fAbsatz), 0) / 365)), 1), ' Tage')
    				ELSE 'unendlich'
    			END AS "Lagerreichweite",
    			ISNULL(SUM(VALast30d.fAbsatz), 0) AS "Absatz 30 Tage",
    			ISNULL(SUM(VALast90d.fAbsatz), 0) AS "Abs. 90 Tage",
    			ISNULL(SUM(VALast365d.fAbsatz), 0) AS "Abs. 365 Tage",
    			ISNULL(SUM(VAGesamt.fAbsatz), 0) AS "Abs. Gesamt",
    			ISNULL(AVG(VAAvg.fVk), 0) AS "Ø VK-Brutto",
    			CONCAT(ROUND(CONVERT(DECIMAL(25, 4), (ISNULL(AVG(RetQuote.Retourenquote), 0))), 1), '%') AS "Retourenquote",
    			CASE
    				WHEN ISNULL(SUM(VALast30d.fAbsatz), 0) > 0 OR SUM(LB.fVerfuegbar) > 0 THEN CONCAT(ROUND(CONVERT(DECIMAL(25, 4), (ISNULL(SUM(VALast30d.fAbsatz), 0) / (SUM(LB.fVerfuegbar) + ISNULL(SUM(VALast30d.fAbsatz), 0)) * 100)), 1), '%')
    				ELSE '-'
    			END AS "Abverkaufsquote (Monat)"
    FROM		dbo.tArtikel AS Art
    JOIN		(
    				SELECT	Art.kArtikel, cArtNr, ArtBe.cName
    				FROM	dbo.tArtikel AS Art
    				JOIN	dbo.tSpracheUsed AS SprU ON SprU.nStandard = 1
    				JOIN	dbo.tArtikelBeschreibung AS ArtBe ON ArtBe.kArtikel = Art.kArtikel AND ArtBe.kSprache = SprU.kSprache AND ArtBe.kPlattform = 1
    				WHERE	Art.kArtikel = @Key
    			) AS ArtSs /* Artikel Subselect */ ON ArtSs.kArtikel = @Key
    JOIN		dbo.tLagerbestand AS LB ON LB.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -30, getdate())
    				GROUP BY VAP.kArtikel
    			) AS VALast30d ON VALast30d.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -90, getdate())
    				GROUP BY VAP.kArtikel
    			) AS VALast90d ON VALast90d.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -365, getdate())
    				GROUP BY VAP.kArtikel
    			) AS VALast365d ON VALast365d.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    				GROUP BY VAP.kArtikel
    			) AS VAGesamt ON VAGesamt.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(AVG(ISNULL(CONVERT(DECIMAL(25,13), VAP.fVkNetto * ((100 + VAP.fMwSt) / 100)), 0.0)), 0.0)) AS fVK
    				FROM	Verkauf.tAuftragPosition AS VAP
    				JOIN	Verkauf.tAuftrag AS VA ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    				GROUP BY VAP.kArtikel
    			) AS VAAvg ON VAAvg.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT		VAGesamt.kArtikel,
    							100 * ISNULL(RetGesamt.rm, 0.0) / VAGesamt.fAbsatz AS Retourenquote
    				FROM		(
    								SELECT	VAP.kArtikel,
    										CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    								FROM	Verkauf.tAuftrag AS VA
    								JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    								WHERE	VA.nType = 1 AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    								GROUP BY VAP.kArtikel
    							) AS VAGesamt
    				LEFT JOIN	(
    								SELECT	RetP.kArtikel,
    										CONVERT(DECIMAL(25, 4), ISNULL(SUM(RetP.fAnzahl), 0.0)) AS rm
    								FROM	Verkauf.tAuftrag AS VA
    								JOIN	dbo.tRMRetoure AS Ret ON Ret.kBestellung = VA.kAuftrag
    								JOIN	dbo.tRMRetourePos AS RetP ON RetP.kRMRetoure = Ret.kRMRetoure
    								GROUP BY RetP.kArtikel
    							) AS RetGesamt ON RetGesamt.kArtikel = VAGesamt.kArtikel
    				) AS RetQuote ON RetQuote.kArtikel = Art.kArtikel
    WHERE		kVaterArtikel = @Key
    GROUP BY	kVaterArtikel, ArtSs.cArtNr, ArtSs.cName
    
    UNION ALL
    
    -- Kindartikel
    SELECT		
    			'-Kindartikel' AS "Artikeltyp",
    			Art.cArtNr AS ArtNr,
    			ArtBe.cName AS Artikelname,       
    			CONVERT(DECIMAL(25, 4), LB.fVerfuegbar) AS "Verfügbar",
    			CONVERT(DECIMAL(25, 4), LB.fZulauf) AS "Zulauf",
    			CASE
    				WHEN ISNULL(VALast365d.fAbsatz, 0) > 0 THEN CONCAT(ROUND(CONVERT(DECIMAL(25, 4), LB.fVerfuegbar / (ISNULL(VALast365d.fAbsatz, 0) / 365)), 1), ' Tage')
    				ELSE 'unendlich'
    			END AS "Lagerreichweite",
    			ISNULL(VALast30d.fAbsatz, 0) AS "Absatz 30 Tage",
    			ISNULL(VALast90d.fAbsatz, 0) AS "Abs. 90 Tage",
    			ISNULL(VALast365d.fAbsatz, 0) AS "Abs. 365 Tage",
    			ISNULL(VAGesamt.fAbsatz, 0) AS "Abs. Gesamt",
    			ISNULL(VAAvg.fVk, 0) AS "Ø VK-Brutto",
    			ISNULL(RetQuote.Retourenquote, '0%') AS "Retourenquote",
    			CASE
    				WHEN ISNULL(VALast30d.fAbsatz, 0) > 0 OR LB.fVerfuegbar > 0 THEN CONCAT(ROUND(CONVERT(DECIMAL(25, 4), (ISNULL(VALast30d.fAbsatz, 0) / (LB.fVerfuegbar + ISNULL(VALast30d.fAbsatz, 0)) * 100)), 1), '%')
    				ELSE '-'
    			END AS "Abverkaufsquote (Monat)"
    FROM		dbo.tArtikel AS Art
    JOIN		dbo.tSpracheUsed AS SprU ON SprU.nStandard = 1
    JOIN		dbo.tArtikelBeschreibung AS ArtBe ON ArtBe.kArtikel = Art.kArtikel AND ArtBe.kSprache = SprU.kSprache AND ArtBe.kPlattform=1
    JOIN		dbo.tLagerbestand AS LB ON LB.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -30, getdate())
    				GROUP BY VAP.kArtikel
    			) AS VALast30d ON VALast30d.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -90, getdate())
    				GROUP BY VAP.kArtikel
    			) AS VALast90d ON VALast90d.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -365, getdate())
    				GROUP BY VAP.kArtikel
    			) AS VALast365d ON VALast365d.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    				GROUP BY VAP.kArtikel
    			) AS VAGesamt ON VAGesamt.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(AVG(ISNULL(CONVERT(DECIMAL(25,13), VAP.fVkNetto * ((100 + VAP.fMwSt) / 100)), 0.0)), 0.0)) AS fVK
    				FROM	Verkauf.tAuftragPosition AS VAP
    				JOIN	Verkauf.tAuftrag AS VA ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    				GROUP BY VAP.kArtikel
    			) AS VAAvg ON VAAvg.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT		VAGesamt.kArtikel,
    							CONCAT(100 * ISNULL(RetGesamt.rm, 0.0) / VAGesamt.fAbsatz, '%') AS Retourenquote
    				FROM		(
    								SELECT	VAP.kArtikel,
    										CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    								FROM	Verkauf.tAuftrag AS VA
    								JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    								WHERE	VA.nType = 1
    										AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    								GROUP BY VAP.kArtikel
    							) AS VAGesamt
    				LEFT JOIN	(
    								SELECT	kArtikel,
    										CONVERT(DECIMAL(25, 4), ISNULL(SUM(RetP.fAnzahl), 0.0)) AS rm
    								FROM	Verkauf.tAuftrag AS VA
    								JOIN	dbo.tRMRetoure AS Ret ON Ret.kBestellung = VA.kAuftrag
    								JOIN	dbo.tRMRetourePos AS RetP ON RetP.kRMRetoure = Ret.kRMRetoure
    								GROUP BY kArtikel
    							) AS RetGesamt ON RetGesamt.kArtikel = VAGesamt.kArtikel
    			) AS RetQuote ON RetQuote.kArtikel = Art.kArtikel
    WHERE		Art.kVaterArtikel = @Key
    
    UNION ALL
    
    -- Standardartikel
    SELECT  
    			CASE
    				WHEN Art.kStueckliste > 0 THEN 'Stückliste'
    				ELSE 'Standardartikel'
    			END  AS "Artikeltyp",
    			Art.cArtNr AS ArtNr,
    			CASE
    				WHEN Art.kStueckliste > 0 THEN CONCAT('(Stückliste) ', ArtBe.cName)
    				ELSE ArtBe.cName
    			END AS Artikelname,
    			CONVERT(DECIMAL(25, 4), LB.fVerfuegbar) AS "Verfügbar",
    			CONVERT(DECIMAL(25, 4), LB.fZulauf) AS "Zulauf",
    			CASE
    				WHEN ISNULL(VALast365d.fAbsatz, 0) > 0 THEN CONCAT(ROUND(CONVERT(DECIMAL(25, 4), LB.fVerfuegbar / (ISNULL(VALast365d.fAbsatz, 0) / 365)), 1), ' Tage')
    				ELSE 'unendlich'
    			END AS "Lagerreichweite",
    			ISNULL(VALast30d.fAbsatz, 0) AS "Absatz 30 Tage",
    			ISNULL(VALast90d.fAbsatz, 0) AS "Abs. 90 Tage",
    			ISNULL(VALast365d.fAbsatz, 0) AS "Abs. 365 Tage",
    			ISNULL(VAGesamt.fAbsatz, 0) AS "Abs. Gesamt",
    			ISNULL(VAAvg.fVk, 0) AS "Ø VK-Brutto",
    			ISNULL(RetQuote.Retourenquote, '0%') AS "Retourenquote",
    			CASE
    				WHEN ISNULL(VALast30d.fAbsatz, 0) > 0 OR LB.fVerfuegbar > 0 THEN CONCAT(ROUND(CONVERT(DECIMAL(25, 4), (ISNULL(VALast30d.fAbsatz, 0) / (LB.fVerfuegbar + ISNULL(VALast30d.fAbsatz, 0)) * 100)), 1), '%')
    				ELSE '-'
    			END AS "Abverkaufsquote (Monat)"
    FROM		dbo.tArtikel AS Art
    JOIN		dbo.tSpracheUsed AS SprU ON SprU.nStandard = 1
    JOIN		dbo.tArtikelBeschreibung AS ArtBe ON ArtBe.kArtikel = Art.kArtikel AND ArtBe.kSprache = SprU.kSprache AND ArtBe.kPlattform=1
    JOIN		dbo.tLagerbestand AS LB ON LB.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -30, getdate())
    				GROUP BY VAP.kArtikel
    			) AS VALast30d ON VALast30d.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -90, getdate())
    				GROUP BY VAP.kArtikel
    			) AS VALast90d ON VALast90d.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -365, getdate())
    				GROUP BY VAP.kArtikel
    			) AS VALast365d ON VALast365d.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    				GROUP BY VAP.kArtikel
    			) AS VAGesamt ON VAGesamt.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(AVG(ISNULL(CONVERT(DECIMAL(25,13), VAP.fVkNetto * ((100 + VAP.fMwSt) / 100)), 0.0)), 0.0)) AS fVK
    				FROM	Verkauf.tAuftragPosition AS VAP
    				JOIN	Verkauf.tAuftrag AS VA ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    				GROUP BY VAP.kArtikel
    			) AS VAAvg ON VAAvg.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT		VAGesamt.kArtikel,
    							CONCAT((ISNULL(RetGesamt.rm, 0.0) / VAGesamt.fAbsatz) * 100, '%') AS Retourenquote
    				FROM		(
    								SELECT	VAP.kArtikel,
    										CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    								FROM	Verkauf.tAuftrag AS VA
    								JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    								WHERE	VA.nType = 1
    										AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    								GROUP BY VAP.kArtikel
    							) AS VAGesamt
    				LEFT JOIN	(
    								SELECT	kArtikel,
    										CONVERT(DECIMAL(25, 4), ISNULL(SUM(RetP.fAnzahl), 0.0)) AS rm
    								FROM	Verkauf.tAuftrag AS VA
    								JOIN	dbo.tRMRetoure AS Ret ON Ret.kBestellung = VA.kAuftrag
    								JOIN	dbo.tRMRetourePos AS RetP ON RetP.kRMRetoure = Ret.kRMRetoure
    								GROUP BY kArtikel
    							) AS RetGesamt ON RetGesamt.kArtikel = VAGesamt.kArtikel
    			) AS RetQuote ON RetQuote.kArtikel = Art.kArtikel
    WHERE		Art.kArtikel = @Key
    			AND Art.nIstVater = 0
    
    UNION ALL
    
    -- Stücklistenkomponenten
    SELECT  
    			'-Komponente' AS "Artikeltyp",
    			Art.cArtNr AS ArtNr,
    			ArtBe.cName AS Artikelname,       
    			CONVERT(DECIMAL(25, 4), LB.fVerfuegbar) AS "Verfügbar",
    			CONVERT(DECIMAL(25, 4), LB.fZulauf) AS "Zulauf",
    			CASE
    				WHEN ISNULL(VALast365d.fAbsatz, 0) > 0 THEN CONCAT(ROUND(CONVERT(DECIMAL(25, 4), LB.fVerfuegbar / (ISNULL(VALast365d.fAbsatz, 0) / 365)), 1), ' Tage')
    				ELSE 'unendlich'
    			END AS "Lagerreichweite",
    			ISNULL(VALast30d.fAbsatz, 0) AS "Absatz 30 Tage",
    			ISNULL(VALast90d.fAbsatz, 0) AS "Abs. 90 Tage",
    			ISNULL(VALast365d.fAbsatz, 0) AS "Abs. 365 Tage",
    			ISNULL(VAGesamt.fAbsatz, 0) AS "Abs. Gesamt",
    			ISNULL(VAAvg.fVk, 0) AS "Ø VK-Brutto",
    			ISNULL(RetQuote.Retourenquote, '0%') AS "Retourenquote",
    			CASE
    				WHEN ISNULL(VALast30d.fAbsatz, 0) > 0 OR LB.fVerfuegbar > 0 THEN CONCAT(ROUND(CONVERT(DECIMAL(25, 4), (ISNULL(VALast30d.fAbsatz, 0) / (LB.fVerfuegbar + ISNULL(VALast30d.fAbsatz, 0)) * 100)), 1), '%')
    				ELSE '-'
    			END AS "Abverkaufsquote (Monat)"
    FROM		dbo.tArtikel AS Art
    JOIN		dbo.tSpracheUsed AS SprU ON SprU.nStandard = 1
    JOIN		dbo.tArtikelBeschreibung AS ArtBe ON ArtBe.kArtikel = Art.kArtikel AND ArtBe.kSprache = SprU.kSprache AND ArtBe.kPlattform=1
    JOIN		dbo.tLagerbestand AS LB ON LB.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -30, getdate())
    				GROUP BY VAP.kArtikel
    			) AS VALast30d ON VALast30d.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -90, getdate())
    				GROUP BY VAP.kArtikel
    			) AS VALast90d ON VALast90d.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -365, getdate())
    				GROUP BY VAP.kArtikel
    			) AS VALast365d ON VALast365d.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    				GROUP BY VAP.kArtikel
    			) AS VAGesamt ON VAGesamt.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT	VAP.kArtikel, CONVERT(DECIMAL(25, 4), ISNULL(AVG(ISNULL(CONVERT(DECIMAL(25,13), VAP.fVkNetto * ((100 + VAP.fMwSt) / 100)), 0.0)), 0.0)) AS fVK
    				FROM	Verkauf.tAuftragPosition AS VAP
    				JOIN	Verkauf.tAuftrag AS VA ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    				GROUP BY VAP.kArtikel
    			) AS VAAvg ON VAAvg.kArtikel = Art.kArtikel
    LEFT JOIN	(
    				SELECT		VAGesamt.kArtikel,
    							CONCAT((ISNULL(RetGesamt.rm, 0.0) / VAGesamt.fAbsatz) * 100, '%') AS Retourenquote
    				FROM		(
    								SELECT	VAP.kArtikel,
    										CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    								FROM	Verkauf.tAuftrag AS VA
    								JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    								WHERE	VA.nType = 1
    										AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    								GROUP BY VAP.kArtikel
    							) AS VAGesamt
    				LEFT JOIN	(
    								SELECT	kArtikel,
    										CONVERT(DECIMAL(25, 4), ISNULL(SUM(RetP.fAnzahl), 0.0)) AS rm
    								FROM	Verkauf.tAuftrag AS VA
    								JOIN	dbo.tRMRetoure AS Ret ON Ret.kBestellung = VA.kAuftrag
    								JOIN	dbo.tRMRetourePos AS RetP ON RetP.kRMRetoure = Ret.kRMRetoure
    								GROUP BY kArtikel
    							) AS RetGesamt ON RetGesamt.kArtikel = VAGesamt.kArtikel
    			) AS RetQuote ON RetQuote.kArtikel = Art.kArtikel
    WHERE		Art.kArtikel IN (SELECT SL.kArtikel FROM dbo.tArtikel AS Art JOIN dbo.tStueckliste AS SL ON SL.kStueckliste = Art.kStueckliste WHERE Art.kArtikel = @Key)
    			AND Art.nIstVater = 0
    ORDER BY	Artikeltyp DESC, ArtNr
    

    Abhängig von der ausgewählten Artikelart sehen die Übersichten wie folgt aus:

    Vaterartikel

    Stückliste

    Standardartikel

    Retourenübersicht

    Mit dieser eigenen Übersicht sehen Sie Informationen zum Retourenverhalten des markierten Artikels. Die folgenden Informationen werden dargestellt:

    • Plattform
    • Akt. Monat
    • Vormonat
    • Letzte 30 Tage
    • Letzte 3 Monate
    • Akt. Jahr
    • Letzte 365 Tage
    • Vorjahr
    • Gesamt
    • Retourenquote
    SELECT
    			PF.cName AS "Plattform",
    			ISNULL(AktMonat.rm, 0) AS "Akt. Monat",
    			ISNULL(VorMonat.rm, 0) AS "Vormonat",
    			ISNULL(Last30d.rm, 0) AS "Letzte 30 Tage",
    			ISNULL(Last3m.rm, 0) AS "Letzte 3 Monate",
    			ISNULL(AktJahr.rm, 0) AS "Akt. Jahr",
    			ISNULL(Last365d.rm, 0) AS "Letzte 365 Tage",
    			ISNULL(Vorjahr.rm, 0) AS "Vorjahr",
    			ISNULL(Gesamt.rm, 0) AS "Gesamt",
    			CASE WHEN ISNULL(RetQuote.RetQuote, '0%') = '0.0000%' THEN '0%' ELSE ISNULL(RetQuote.RetQuote, '0%') END AS "RetQuote"
    FROM		dbo.tPlattform AS PF
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(RetP.fAnzahl), 0.0)) AS rm
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	dbo.tRMRetoure AS Ret ON Ret.kBestellung = VA.kAuftrag
    				JOIN	dbo.tRMRetourePos AS RetP ON RetP.kRMRetoure = Ret.kRMRetoure
    				WHERE	RetP.kArtikel = @Key
    						AND YEAR(Ret.dErstellt) = YEAR(GETDATE())
    						AND MONTH(Ret.dErstellt) = MONTH(GETDATE())
    				GROUP BY VA.kPlattform
    			) AS AktMonat ON AktMonat.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	50 AS kPlattform, -- Plattform = Amazon
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(AmRP.nMenge), 0.0)) AS rm
    				FROM	dbo.pf_amazon_angebot_mapping AS AmAM
    				JOIN	dbo.pf_amazon_retourpos AS AmRP ON AmRP.cSellerSKU = AmAM.cSellerSKU 
    				WHERE	AmAM.kArtikel = @Key
    						AND YEAR(AmRP.dRetourzeit) = YEAR(GETDATE())
    						AND MONTH(AmRP.dRetourzeit) = MONTH(GETDATE())
    			) AS AktMonatFBA ON AktMonatFBA.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    				JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    				WHERE	RMRetP.kArtikel = @Key
    						AND YEAR(RMRet.dErstellt) = YEAR(DATEADD(MONTH, -1, GETDATE()))
    						AND MONTH(RMRet.dErstellt) = MONTH(DATEADD(MONTH, -1, GETDATE()))
    				GROUP BY VA.kPlattform
    			) AS VorMonat ON VorMonat.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	50 AS kPlattform, -- Plattform = Amazon
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(AmRetP.nMenge), 0.0)) AS rm
    				FROM	dbo.pf_amazon_angebot_mapping AS AmAM
    				JOIN	dbo.pf_amazon_retourpos AS AmRetP ON AmRetP.cSellerSKU = AmAM.cSellerSKU 
    				WHERE	AmAM.kArtikel = @Key
    						AND YEAR(AmRetP.dRetourzeit) = YEAR(DATEADD(MONTH, -1, GETDATE()))
    						AND MONTH(AmRetP.dRetourzeit) = MONTH(DATEADD(MONTH, -1, GETDATE()))
    			) AS VorMonatFBA ON VorMonatFBA.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    				JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    				WHERE	RMRetP.kArtikel = @Key
    						AND RMRet.dErstellt > DATEADD(DAY, -30, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS Last30d ON Last30d.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	50 AS kPlattform, -- Plattform = Amazon
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(AmRetP.nMenge), 0.0)) AS rm
    				FROM	dbo.pf_amazon_angebot_mapping AS AmAM
    				JOIN	dbo.pf_amazon_retourpos AS AmRetP ON AmRetP.cSellerSKU = AmAM.cSellerSKU 
    				WHERE	AmAM.kArtikel = @Key
    						AND AmRetP.dRetourzeit > DATEADD(DAY, -30, GETDATE())
    			) AS Last30dFBA ON Last30dFBA.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    				JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    				WHERE	RMRetP.kArtikel = @Key
    						AND RMRet.dErstellt > DATEADD(MONTH, -3, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS Last3m ON Last3m.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	50 AS kPlattform, -- Plattform = Amazon
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(AmRetP.nMenge), 0.0)) AS rm
    				FROM	dbo.pf_amazon_angebot_mapping AS AmAM
    				JOIN	dbo.pf_amazon_retourpos AS AmRetP ON AmRetP.cSellerSKU = AmAM.cSellerSKU 
    				WHERE	AmAM.kArtikel = @Key
    						AND AmRetP.dRetourzeit > DATEADD(MONTH, -3, GETDATE())
    			) AS Last3mFBA ON Last3mFBA.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    				JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    				WHERE	RMRetP.kArtikel = @Key
    						AND YEAR(RMRet.dErstellt) = YEAR(GETDATE())
    				GROUP BY VA.kPlattform
    			) AS AktJahr ON AktJahr.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	50 AS kPlattform, -- Plattform = Amazon
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(AmRetP.nMenge), 0.0)) AS rm
    				FROM	dbo.pf_amazon_angebot_mapping AS AmAM
    				JOIN	dbo.pf_amazon_retourpos AS AmRetP ON AmRetP.cSellerSKU = AmAM.cSellerSKU 
    				WHERE	AmAM.kArtikel = @Key
    						AND YEAR(AmRetP.dRetourzeit) = YEAR(GETDATE())
    			) AS AktJahrFBA ON AktJahrFBA.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    				JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    				WHERE	RMRetP.kArtikel = @Key
    						AND RMRet.dErstellt > DATEADD(DAY, -365, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS Last365d ON Last365d.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	50 AS kPlattform, -- Plattform = Amazon
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(AmRetP.nMenge), 0.0)) AS rm
    				FROM	dbo.pf_amazon_angebot_mapping AS AmAM
    				JOIN	dbo.pf_amazon_retourpos AS AmRetP ON AmRetP.cSellerSKU = AmAM.cSellerSKU 
    				WHERE	AmAM.kArtikel = @Key
    						AND AmRetP.dRetourzeit > DATEADD(DAY, -365, GETDATE())
    			) AS Last365dFBA ON Last365dFBA.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    				JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    				WHERE	RMRetP.kArtikel = @Key
    						AND YEAR(RMRet.dErstellt) = YEAR(DATEADD(YEAR, -1, GETDATE()))
    				GROUP BY VA.kPlattform
    			) AS Vorjahr ON Vorjahr.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	50 AS kPlattform, -- Plattform = Amazon
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(AmRetP.nMenge), 0.0)) AS rm
    				FROM	dbo.pf_amazon_angebot_mapping AS AmAM
    				JOIN	dbo.pf_amazon_retourpos AS AmRetP ON AmRetP.cSellerSKU = AmAM.cSellerSKU 
    				WHERE	AmAM.kArtikel = @Key
    						AND YEAR(AmRetP.dRetourzeit) = YEAR(DATEADD(YEAR, -1, GETDATE()))
    			) AS VorjahrFBA ON VorjahrFBA.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform,
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    				FROM	Verkauf.tAuftrag AS VA
    				JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    				JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    				WHERE	RMRetP.kArtikel = @Key
    				GROUP BY VA.kPlattform
    			) AS Gesamt ON Gesamt.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	50 AS kPlattform, -- Plattform = Amazon
    						CONVERT(DECIMAL(25, 4), ISNULL(SUM(AmRetP.nMenge), 0.0)) AS rm
    				FROM	dbo.pf_amazon_angebot_mapping AS AmAM
    				JOIN	dbo.pf_amazon_retourpos AS AmRetP ON AmRetP.cSellerSKU = AmAM.cSellerSKU 
    				WHERE	AmAM.kArtikel = @Key
    			) AS GesamtFBA ON GesamtFBA.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT		AbsGesamt.kPlattform, 
    							CONCAT(CONVERT(DECIMAL(25, 4), (CASE WHEN AbsGesamt.Absatz = 0 THEN 0.0 ELSE ISNULL(RetGesamt.rm, 0.0) / AbsGesamt.Absatz END) * 100), '%') AS RetQuote
    				FROM		(
    								SELECT	VA.kPlattform,
    										CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS absatz
    								FROM	Verkauf.tAuftrag AS VA
    								JOIN	Verkauf.tAuftragPosition as VAP ON VAP.kAuftrag = VA.kAuftrag
    								WHERE	VAP.kArtikel = @Key
    										AND VA.nType = 1
    										AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    								GROUP BY VA.kPlattform
    							) AS AbsGesamt
    				LEFT JOIN	(
    								SELECT	VA.kPlattform,
    										CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    								FROM	Verkauf.tAuftrag AS VA
    								JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    								JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    								WHERE	RMRetP.kArtikel = @Key
    								GROUP BY VA.kPlattform
    							) AS RetGesamt ON RetGesamt.kPlattform = AbsGesamt.kPlattform
    			) AS RetQuote ON RetQuote.kPlattform = PF.nPlattform
    
    UNION
    
    SELECT
    		'Alle Plattformen' AS "Plattform",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    			FROM	Verkauf.tAuftrag AS VA
    			JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    			JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    			WHERE	RMRetP.kArtikel = @Key
    					AND YEAR(RMRet.dErstellt) = YEAR(GETDATE())
    					AND MONTH(RMRet.dErstellt) = MONTH(GETDATE())
    		) AS "Akt. Monat",
    	    (
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    			FROM	Verkauf.tAuftrag AS VA
    			JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    			JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    			WHERE	RMRetP.kArtikel = @Key
    					AND YEAR(RMRet.dErstellt) = YEAR(DATEADD(MONTH, -1, GETDATE()))
    					AND MONTH(RMRet.dErstellt) = MONTH(DATEADD(MONTH, -1, GETDATE()))
    		) AS "Vormonat",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    			FROM	Verkauf.tAuftrag AS VA
    			JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    			JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    			WHERE	RMRetP.kArtikel = @Key
    					AND RMRet.dErstellt > DATEADD(DAY, -30, GETDATE())
    		) AS "Letzte 30 Tage",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    			FROM	Verkauf.tAuftrag AS VA
    			JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    			JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    			WHERE	RMRetP.kArtikel = @Key
    					AND RMRet.dErstellt > DATEADD(MONTH, -3, GETDATE())
    		) AS "Letzte 3 Monate",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    			FROM	Verkauf.tAuftrag AS VA
    			JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    			JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    			WHERE	RMRetP.kArtikel = @Key
    					AND YEAR(RMRet.dErstellt) = YEAR(GETDATE())
    		) AS "Akt. Jahr",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    			FROM	Verkauf.tAuftrag AS VA
    			JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    			JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    			WHERE	RMRetP.kArtikel = @Key
    					AND RMRet.dErstellt > DATEADD(DAY, -365, GETDATE())
    		) AS "Letzte 365 Tage",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    			FROM	Verkauf.tAuftrag AS VA
    			JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    			JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    			WHERE	RMRetP.kArtikel = @Key
    					AND YEAR(RMRet.dErstellt) = YEAR(DATEADD(YEAR, -1, GETDATE()))
    		) AS "Vorjahr",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    			FROM	Verkauf.tAuftrag AS VA
    			JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    			JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    			WHERE	RMRetP.kArtikel = @Key
    		) AS "Gesamt",
    		(
    			SELECT
    					CASE WHEN AbsGesamt.Absatz = 0 THEN '0%' ELSE CONCAT(CONVERT(DECIMAL(25, 4), ISNULL(RetGesamt.rm, 0.0) * 100 / AbsGesamt.Absatz), '%') END AS RetQuote
    			FROM	(
    						SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    						FROM	Verkauf.tAuftrag AS VA
    						JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    						JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    						WHERE	RMRetP.kArtikel = @Key
    					) AS RetGesamt
    			OUTER APPLY	(
    						SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS Absatz
    						FROM	Verkauf.tAuftrag AS VA
    						JOIN	Verkauf.tAuftragPosition as VAP ON VAP.kAuftrag = VA.kAuftrag
    						WHERE	VAP.kArtikel = @Key
    								AND VA.nType = 1
    					) AS AbsGesamt
    		) AS RetQuote
    ORDER BY Plattform
    

    Verkäufe pro Plattform

    Mit dieser eigenen Übersicht sehen Sie, wie häufig sich der markierte Artikel über die verschiedenen Verkaufskanäle verkauft. Marktplätze über Drittanbindungen, Shopsysteme und POS-Kassen werden in der Übersicht ebenfalls berücksichtigt. Die folgenden Informationen werden dargestellt:

    • Plattform
    • Heute
    • Gestern
    • Akt. Monat
    • Vormonat
    • Letzte 30 Tage
    • Letzte 3 Monate
    • Akt. Jahr
    • Letzte 365 Tage
    • Vorjahr
    • Gesamt
    SELECT
    			PF.cName AS "Plattform",
    			ISNULL(AktTag.fAbsatz, 0) AS "Heute",
    			ISNULL(Gestern .fAbsatz, 0) AS "Gestern",  
    			ISNULL(AktMonat.fAbsatz, 0) AS "Akt. Monat",
    			ISNULL(VorMonat.fAbsatz, 0) AS "Vormonat",
    			ISNULL(Last30d.fAbsatz, 0) AS "Letzte 30 Tage",
    			ISNULL(Last3m.fAbsatz, 0) AS "Letzte 3 Monate",  
    			ISNULL(AktJahr.fAbsatz, 0) AS "Akt. Jahr",
    			ISNULL(Last365d.fAbsatz, 0) AS "Letzte 365 Tage",
    			ISNULL(Vorjahr.fAbsatz, 0) AS "Vorjahr",
    			ISNULL(Gesamt.fAbsatz, 0) AS "Gesamt",
    			ISNULL(VKAvg.fVKNetto, 0) "Ø VK-Netto",
    			CASE WHEN ISNULL(RetQuote.RetQuote, '0%') = '0.0000%' THEN '0%' ELSE ISNULL(RetQuote.RetQuote, '0%') END AS "RetQuote"
    FROM		dbo.tPlattform AS PF
    LEFT JOIN	(
    				SELECT	VA.kPlattform, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag as VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nType = 1
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND YEAR(VA.dErstellt) = YEAR(GETDATE())
    						AND MONTH(VA.dErstellt) = MONTH(GETDATE())
    						AND DAY(VA.dErstellt) = DAY(GETDATE())
    				GROUP BY VA.kPlattform
    			) AS AktTag ON AktTag.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag as VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nType = 1
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND YEAR(VA.dErstellt) = YEAR(DATEADD(DAY, -1, GETDATE()))
    						AND MONTH(VA.dErstellt) = MONTH(DATEADD(DAY, -1, GETDATE()))
    						AND DAY(VA.dErstellt) = DAY(DATEADD(DAY, -1, GETDATE()))
    				GROUP BY VA.kPlattform
    			) AS Gestern ON Gestern.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag as VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nType = 1
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND YEAR(VA.dErstellt) = YEAR(GETDATE())
    						AND MONTH(VA.dErstellt) = MONTH(GETDATE())
    				GROUP BY VA.kPlattform
    			) AS AktMonat ON AktMonat.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag as VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nType = 1
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND YEAR(VA.dErstellt) = YEAR(DATEADD(MONTH, -1, GETDATE()))
    						AND MONTH(VA.dErstellt) = MONTH(DATEADD(MONTH, -1, GETDATE()))
    				GROUP BY VA.kPlattform
    			) AS VorMonat ON VorMonat.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag as VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -30, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS Last30d ON Last30d.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag as VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(MONTH, -3, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS Last3m ON Last3m.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag as VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND YEAR(VA.dErstellt) = YEAR(GETDATE())
    				GROUP BY VA.kPlattform
    			) AS AktJahr ON AktJahr.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag as VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND VA.dErstellt > DATEADD(DAY, -365, GETDATE())
    				GROUP BY VA.kPlattform
    			) AS Last365d ON Last365d.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT	VA.kPlattform, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag as VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    						AND YEAR(VA.dErstellt) = YEAR(DATEADD(YEAR, -1, GETDATE()))
    				GROUP BY VA.kPlattform
    			) AS Vorjahr ON Vorjahr.kPlattform = PF.nPlattform
    JOIN		(
    				SELECT	VA.kPlattform, CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    				FROM	Verkauf.tAuftrag as VA
    				JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    				GROUP BY VA.kPlattform
    			) AS Gesamt ON Gesamt.kPlattform = PF.nPlattform
    JOIN		(
    				SELECT	VA.kPlattform, CONVERT(DECIMAL(25, 4), ISNULL(AVG(VAP.fWertNettoGesamtFixiert / VA.fFaktor), 0.0)) AS fVKNetto -- für Brutto 'fVKNetto' durch 'fVKPreis' ersetzen
    				FROM	Verkauf.tAuftragPosition AS VAP
    				JOIN	Verkauf.tAuftrag as VA ON VAP.kAuftrag = VA.kAuftrag
    				WHERE	VAP.kArtikel = @Key
    						AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    						AND VA.nType = 1
    				GROUP BY VA.kPlattform
    			) AS VKAvg ON VKAvg.kPlattform = PF.nPlattform
    LEFT JOIN	(
    				SELECT		AbsGesamt.kPlattform, 
    							CONCAT(CONVERT(DECIMAL(25, 4), (CASE WHEN AbsGesamt.fAbsatz > 0.0 THEN ISNULL(RetGesamt.rm, 0.0) / AbsGesamt.fAbsatz ELSE 0.0 END) * 100), '%') AS RetQuote
    				FROM		(
    								SELECT	VA.kPlattform,
    										CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    								FROM	Verkauf.tAuftrag as VA
    								JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    								WHERE	VAP.kArtikel = @Key
    										AND VA.nType = 1
    										AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    								GROUP BY kPlattform
    							) AS AbsGesamt
    				LEFT JOIN	(
    								SELECT	VA.kPlattform,
    										CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)) AS rm
    								FROM	Verkauf.tAuftrag as VA
    								JOIN	dbo.tRMRetoure RMRet ON RMRet.kBestellung = VA.kAuftrag
    								JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    								WHERE	RMRetP.kArtikel = @Key
    								GROUP BY VA.kPlattform
    							) AS RetGesamt ON RetGesamt.kPlattform = AbsGesamt.kPlattform
    			) AS RetQuote ON RetQuote.kPlattform = PF.nPlattform
    
    UNION
    
    SELECT	'Alle Plattformen' AS "Plattform",
    	    (
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    			FROM	Verkauf.tAuftrag as VA
    			JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    			WHERE	VAP.kArtikel = @Key
    					AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    					AND VA.nType = 1
    					AND YEAR(VA.dErstellt) = YEAR(GETDATE())
    					AND MONTH(VA.dErstellt) = MONTH(GETDATE())
    					AND DAY(VA.dErstellt) = DAY(GETDATE())
    		) AS "Heute",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    			FROM	Verkauf.tAuftrag as VA
    			JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    			WHERE	VAP.kArtikel = @Key
    					AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    					AND VA.nType = 1
    					AND YEAR(VA.dErstellt) = YEAR(DATEADD(DAY, -1, GETDATE()))
    					AND MONTH(VA.dErstellt) = MONTH(DATEADD(DAY, -1, GETDATE()))
    					AND DAY(VA.dErstellt) = DAY(DATEADD(DAY, -1, GETDATE()))
    		) AS "Gestern",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    			FROM	Verkauf.tAuftrag as VA
    			JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    			WHERE	VAP.kArtikel = @Key
    					AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    					AND VA.nType = 1
    					AND YEAR(VA.dErstellt) = YEAR(GETDATE())
    					AND MONTH(VA.dErstellt) = MONTH(GETDATE())
    		) AS "Akt. Monat",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    			FROM	Verkauf.tAuftrag as VA
    			JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    			WHERE	VAP.kArtikel = @Key
    					AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    					AND VA.nType = 1
    					AND YEAR(VA.dErstellt) = YEAR(DATEADD(MONTH, -1, GETDATE()))
    					AND MONTH(VA.dErstellt) = MONTH(DATEADD(MONTH, -1, GETDATE()))
    		) AS "Vormonat",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    			FROM	Verkauf.tAuftrag as VA
    			JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    			WHERE	VAP.kArtikel = @Key
    					AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    					AND VA.nType = 1
    					AND VA.dErstellt > DATEADD(DAY, -30, GETDATE())) AS "Letzte 30 Tage",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    			FROM	Verkauf.tAuftrag as VA
    			JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    			WHERE	VAP.kArtikel = @Key
    					AND VA.nType = 1
    					AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    					AND VA.dErstellt > DATEADD(MONTH, -3, GETDATE())
    		) AS "Letzte 3 Monate",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    			FROM	Verkauf.tAuftrag as VA
    			JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    			WHERE	VAP.kArtikel = @Key
    					AND VA.nType = 1
    					AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    					AND YEAR(VA.dErstellt) = YEAR(GETDATE())
    		) AS "Akt. Jahr",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    			FROM	Verkauf.tAuftrag as VA
    			JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    			WHERE	VAP.kArtikel = @Key
    					AND VA.nType = 1
    					AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    					AND VA.dErstellt > DATEADD(DAY, -365, GETDATE())
    		) AS "Letzte 365 Tage",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    			FROM	Verkauf.tAuftrag as VA
    			JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    			WHERE	VAP.kArtikel = @Key
    					AND VA.nType = 1
    					AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    					AND YEAR(VA.dErstellt) = YEAR(DATEADD(YEAR, -1, GETDATE()))
    		) AS "Vorjahr",
    		(
    			SELECT	ROUND(CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)), 2) AS fAbsatz
    			FROM	Verkauf.tAuftrag as VA
    			JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    			WHERE	VAP.kArtikel = @Key
    					AND VA.nType = 1
    					AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    		) AS "Gesamt",
    		(
    			SELECT	CONVERT(DECIMAL(25, 4), ISNULL(AVG(VAP.fVKNetto / VA.fFaktor), 0.0)) AS fVKNetto -- für Brutto 'fVKNetto' durch 'fVKPreis'' ersetzen
    			FROM	Verkauf.tAuftragPosition AS VAP
    			JOIN	Verkauf.tAuftrag as VA ON VA.kAuftrag = VAP.kAuftrag
    			WHERE	VAP.kArtikel = @Key
    					AND VA.nType = 1
    					AND VA.nStorno = 0 -- Stornierte Aufträge nicht beachten
    		) AS "Ø VK-Netto",
    		(
    			SELECT		CONCAT(CONVERT(DECIMAL(25, 4), (CASE WHEN AbsGesamt.fAbsatz > 0.0 THEN RetGesamt.rm / AbsGesamt.fAbsatz ELSE 0.0 END) * 100), '%') AS RetQuote
    			FROM		(
    							SELECT	ROUND(CONVERT(DECIMAL(25, 4), ISNULL(SUM(RMRetP.fAnzahl), 0.0)), 2) AS rm
    							FROM	Verkauf.tAuftrag as VA
    							JOIN	dbo.tRMRetoure AS RMRet ON RMRet.kBestellung = VA.kAuftrag
    							JOIN	dbo.tRMRetourePos AS RMRetP ON RMRetP.kRMRetoure = RMRet.kRMRetoure
    							WHERE	RMRetP.kArtikel = @Key
    						) AS RetGesamt
    			OUTER APPLY	(
    						SELECT	CONVERT(DECIMAL(25, 4), ISNULL(SUM(VAP.fAnzahl), 0.0)) AS fAbsatz
    						FROM	Verkauf.tAuftrag as VA
    						JOIN	Verkauf.tAuftragPosition AS VAP ON VAP.kAuftrag = VA.kAuftrag
    						WHERE	VAP.kArtikel = @Key
    								AND VA.nType = 1
    					) AS AbsGesamt
    		) AS RetQuote
    ORDER BY Plattform
    

    Zulaufübersicht

    Mit dieser eigenen Übersicht sehen Sie Informationen zu ausstehenden Lieferantenbestellungen des markierten Artikel. Die folgenden Informationen werden dargestellt:

    • Bestellnummer
    • Lieferant
    • Bestelldatum
    • Bestellmenge
    • Gelieferte Menge
    • Offene Menge
    • Voraussichtliches Lieferdatum
    • Hinweis
    • Interner Kommentar
    • Druckanmerkung
    • nStatus
    • Zielort
    SELECT 
    			LiefB.cEigeneBestellnummer AS "Bestellnummer",
    			Lief.cFirma AS "Lieferant",
    			FORMAT(LiefB.dErstellt, 'dd.MM.yyyy') AS "Bestelldatum",
    			CONVERT(DECIMAL(25, 2), LiefBP.fMenge) AS "Bestellmenge",
    			CONVERT(DECIMAL(25, 2), LiefBP.fMengeGeliefert) AS "Gelieferte Menge",
    			CONVERT(DECIMAL(25, 2), LiefBP.fAnzahlOffen) AS "Offene Menge",
    			FORMAT(LiefBP.dLieferdatum, 'dd.MM.yyyy') AS "Vorauss. Lieferdatum",
    			LiefBP.cHinweis AS "Hinweis",
    			LiefB.cInternerKommentar AS "Interner Kommentar",
    			LiefB.cDruckAnmerkung AS "Druckanmerkung",
    			LiefB.nStatus,
    			CASE
    				WHEN LiefB.kKunde > 0 THEN CONCAT(LiefBestLA.cVorname, ' ', LiefBestLA.cNachname, ' ', LiefBestLA.cFirma)
    				ELSE ISNULL(WL.cName, '')
    			END AS "Zielort"
    FROM		dbo.tLieferantenBestellung AS LiefB
    JOIN		dbo.tLieferantenBestellungPos AS LiefBP ON LiefBP.kLieferantenBestellung = LiefB.kLieferantenBestellung
    JOIN		dbo.tArtikel AS Art ON Art.kArtikel = LiefBP.kArtikel
    JOIN		dbo.tLieferant AS Lief ON Lief.kLieferant = LiefB.kLieferant
    LEFT JOIN	dbo.tWarenLager AS WL ON WL.kWarenLager = LiefB.kLager
    JOIN		dbo.tLieferantenBestellungLA AS LiefBestLA ON LiefBestLA.kLieferantenBestellungLA = LiefB.kLieferantenBestellungLA
    WHERE		Art.kArtikel = @Key
    			AND LiefB.nStatus >= 20 -- 20 = In Bearbeitung | 30 = Teilgeliefert | 50 =  berf llig | 100 = Preisanfrage
    			AND LiefB.nStatus < 500 -- 500 = Abgeschlossen
    			AND ISNULL(LiefB.nDeleted, 0) = 0
    			AND LiefBP.fMengeGeliefert < LiefBP.fMenge