Eigene Übersichten für Artikel
Ihre Aufgabe/Ausgangslage
Voraussetzungen/Einschränkungen
Abverkauf pro Kunde
Mit dieser eigenen Übersicht sehen Sie alle Kunden, die den markierten Artikel jemals gekauft haben. Die folgenden Informationen werden dargestellt:
-- 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:
-- 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:
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:
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:
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:
-- 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:
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:
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:
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
Verwandte Themen