tecaustria
Gut bekanntes Mitglied
1. Lagerplatz des Artikels
2. Retouren per Plattform:
SQL:
SELECT tWarenLager.cName AS Warenlager,
tWarenLagerPlatz.cName AS Lagerplatz,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tWarenLagerEingang.fAnzahlAktuell), 0.0)), 2) AS Bestand
FROM dbo.tWarenLagerEingang
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE tWarenLagerEingang.fAnzahlAktuell > 0.0
AND tWarenLagerEingang.kArtikel = @Key
GROUP BY tWarenLager.cName,
tWarenLagerPlatz.cName
ORDER BY tWarenLager.cName,
tWarenLagerPlatz.cName
SQL:
SELECT tPlattform.cName AS 'Plattform',
ISNULL(jAktMonat.rm, 0) AS 'Akt. Monat',
ISNULL(jVorMonat.rm, 0) AS 'Vormonat',
ISNULL(jLetzte30Tage.rm, 0) AS 'Letzte 30 Tage',
ISNULL(jLetzte3Monate.rm, 0) AS 'Letzte 3 Monate',
ISNULL(jAktJahr.rm, 0) AS 'Akt. Jahr',
ISNULL(jLetzte365Tage.rm, 0) AS 'Letzte 365 Tage',
ISNULL(jVorjahr.rm, 0) AS 'Vorjahr',
ISNULL(jGesamt.rm, 0) AS 'Gesamt',
ISNULL(jRetourenGesamt.Retourenquote, '0%') AS 'Retourenquote'
FROM tPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND YEAR(tRMRetoure.dErstellt) = YEAR(getdate())
AND MONTH(tRMRetoure.dErstellt) = MONTH(getdate())
GROUP BY nPlatform
) as jAktMonat on jAktMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND YEAR(tRMRetoure.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
AND MONTH(tRMRetoure.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))
GROUP BY nPlatform
) as jVorMonat on jVorMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND tRMRetoure.dErstellt > DATEADD(DAY, -30, getdate())
GROUP BY nPlatform
) as jLetzte30Tage on jLetzte30Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND tRMRetoure.dErstellt > DATEADD(MONTH, -3, getdate())
GROUP BY nPlatform
) as jLetzte3Monate on jLetzte3Monate.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND YEAR(tRMRetoure.dErstellt) = YEAR(getdate())
GROUP BY nPlatform
) as jAktJahr on jAktJahr.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND tRMRetoure.dErstellt > DATEADD(DAY, -365, getdate())
GROUP BY nPlatform
) as jLetzte365Tage on jLetzte365Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND YEAR(tRMRetoure.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))
GROUP BY nPlatform
) as jVorjahr on jVorjahr.nPlatform = tPlattform.nPlattform
JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
GROUP BY nPlatform
) as jGesamt on jGesamt.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT jabsatzgesamt.nPlatform,
CONCAT((ISNULL(retourengesamt.rm, 0.0)/jabsatzgesamt.absatz)*100, '%') as Retourenquote
FROM
(SELECT tbestellung.nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
GROUP BY nPlatform) AS jabsatzgesamt
LEFT JOIN
(SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
GROUP BY nPlatform) AS retourengesamt on retourengesamt.nPlatform=jabsatzgesamt.nPlatform)
as jRetourenGesamt on jRetourenGesamt.nPlatform = tPlattform.nPlattform
UNION
SELECT 'Alle Plattformen' AS 'Plattform',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND YEAR(tRMRetoure.dErstellt) = YEAR(getdate())
AND MONTH(tRMRetoure.dErstellt) = MONTH(getdate())) as 'Akt. Monat',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND YEAR(tRMRetoure.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
AND MONTH(tRMRetoure.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))) as 'Vormonat',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND tRMRetoure.dErstellt > DATEADD(DAY, -30, getdate())) as 'Letzte 30 Tage',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND tRMRetoure.dErstellt > DATEADD(MONTH, -3, getdate())) as 'Letzte 3 Monate',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND YEAR(tRMRetoure.dErstellt) = YEAR(getdate())) as 'Akt. Jahr',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND tRMRetoure.dErstellt > DATEADD(DAY, -365, getdate())) as 'Letzte 365 Tage',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
AND YEAR(tRMRetoure.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))) as 'Vorjahr',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key) as 'Gesamt',
(SELECT CONCAT(ROUND((retourengesamt.rm/jabsatzgesamt.absatz)*100, 2), '%') as Retourenquote
FROM
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key) AS retourengesamt
JOIN
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B') AS jabsatzgesamt on 1=1) AS Retourenquote
ORDER BY Plattform
Zuletzt von einem Moderator bearbeitet: