Neu SAMMLUNG an Artikel eigene Übersichten

tecaustria

Gut bekanntes Mitglied
22. Dezember 2014
113
13
Natters
1. Lagerplatz des Artikels
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
2. Retouren per Plattform:
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:

tecaustria

Gut bekanntes Mitglied
22. Dezember 2014
113
13
Natters
3. VERKAUFT per Plattform:
SQL:
[/B]
SELECT    tPlattform.cName AS 'Plattform',
        ISNULL(jAktTag.absatz, 0) AS 'Heute',
        ISNULL(jGestern .absatz, 0) AS 'Gestern',    
        ISNULL(jAktMonat.absatz, 0) AS 'Akt. Monat',
        ISNULL(jVorMonat.absatz, 0) AS 'Vormonat',
        ISNULL(jLetzte30Tage.absatz, 0) AS 'Letzte 30 Tage',
        ISNULL(jLetzte3Monate.absatz, 0) AS 'Letzte 3 Monate',    
        ISNULL(jAktJahr.absatz, 0) AS 'Akt. Jahr',
        ISNULL(jLetzte365Tage.absatz, 0) AS 'Letzte 365 Tage',
        ISNULL(jVorjahr.absatz, 0) AS 'Vorjahr',
        ISNULL(jGesamt.absatz, 0) AS 'Gesamt'
FROM tPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
            AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
            AND DAY(tBestellung.dErstellt) = DAY(getdate())
    GROUP BY nPlatform
) as jAktTag on jAktTag.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
            AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
            AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))
    GROUP BY nPlatform
) as jGestern on jGestern.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
            AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
    GROUP BY nPlatform
) as jAktMonat on jAktMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
            AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))
    GROUP BY nPlatform
) as jVorMonat on jVorMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())
    GROUP BY nPlatform
) as jLetzte30Tage on jLetzte30Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())
    GROUP BY nPlatform
) as jLetzte3Monate on jLetzte3Monate.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
    GROUP BY nPlatform
) as jAktJahr on jAktJahr.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())
    GROUP BY nPlatform
) as jLetzte365Tage on jLetzte365Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))
    GROUP BY nPlatform
) as jVorjahr on jVorjahr.nPlatform = tPlattform.nPlattform
JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
    GROUP BY nPlatform
) as jGesamt on jGesamt.nPlatform = tPlattform.nPlattform
UNION
SELECT 'Alle Plattformen' AS 'Plattform',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
            AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
            AND DAY(tBestellung.dErstellt) = DAY(getdate())) as 'Heute',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
            AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
            AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))) as 'Gestern',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
            AND MONTH(tBestellung.dErstellt) = MONTH(getdate())) as 'Akt. Monat',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
            AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))) as 'Vormonat',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
    AND tbestellung.cType = 'B'
    AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())) as 'Letzte 30 Tage',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
    AND tbestellung.cType = 'B'
    AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())) as 'Letzte 3 Monate',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
    AND tbestellung.cType = 'B'
    AND YEAR(tBestellung.dErstellt) = YEAR(getdate())) as 'Akt. Jahr',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
    AND tbestellung.cType = 'B'
    AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())) as 'Letzte 365 Tage',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
    AND tbestellung.cType = 'B'
    AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))) as 'Vorjahr',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
    AND tbestellung.cType = 'B') as 'Gesamt'
ORDER BY Plattform
4. KATEGORIEN des Artikels
SQL:
[/B]
SELECT    tKategorieSprache.cName AS Kategorie
FROM dbo.tkategorieartikel
JOIN dbo.tSpracheUsed ON nStandard = 1
JOIN dbo.tKategorieSprache ON tkategorieartikel.kKategorie = tKategorieSprache.kKategorie
    AND tKategorieSprache.kSprache = tSpracheUsed.kSprache
WHERE tkategorieartikel.kArtikel LIKE @Key
 
Zuletzt von einem Moderator bearbeitet:
  • Gefällt mir
Reaktionen: SHAAN und SMIT

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.574
299
Köln
Wäre da noch interessant den Artikel Zustand dazu zu schreiben??
Anbei die Nr. 1 mit Zustandspalte:
SQL:
SELECT    tWarenLager.cName AS Warenlager,
        tWarenLagerPlatz.cName AS Lagerplatz,
       ROUND(CONVERT(FLOAT, ISNULL(SUM(tWarenLagerEingang.fAnzahlAktuell), 0.0)), 2) AS Bestand,
       tZustandSprache.cName AS Artikelzustand
FROM dbo.tWarenLagerEingang
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
JOIN dbo.tartikel ON tartikel.kArtikel = tWarenLagerEingang.kArtikel
JOIN dbo.tSpracheUsed ON nStandard = 1
JOIN dbo.tZustandSprache ON tZustandSprache.kZustand = tartikel.kZustand
    AND tZustandSprache.kSprache = tSpracheUsed.kSprache
WHERE    tWarenLagerEingang.fAnzahlAktuell > 0.0
        AND tWarenLagerEingang.kArtikel = @Key
GROUP BY    tWarenLager.cName,
            tWarenLagerPlatz.cName,
            tZustandSprache.cName
ORDER BY    tWarenLager.cName,
            tWarenLagerPlatz.cName,
            tZustandSprache.cName
 
  • Gefällt mir
Reaktionen: SMIT und werk26

Karobube

Sehr aktives Mitglied
23. September 2020
183
150
Remote via AnyDesk
Firma
contact@karobube.com
Tage mit/ohne Bestand
Eigene Übersicht wie viele Tage in verschiedenen Zeiträumen Bestand > 0 auf dem Artikel war, bzw. kein Bestand

SQL:
DECLARE @Heute DATE = GETDATE()
DECLARE @ArtikelErstellDatum DATE = (SELECT CAST(dErstelldatum AS DATE) FROM tArtikel
WHERE kArtikel = @Key)
DECLARE @ArtikelErstAnlieferung DATE = ISNULL((SELECT
CAST(MIN(tWarenlagerEingang.dErstellt) AS DATE) FROM tWarenlagerEingang WHERE
tWarenLagerEingang.kArtikel = @Key),@ArtikelErstellDatum)
DECLARE @Monatsbeginn DATE = DATEADD(DAY, 1, EOMONTH(DATEADD(MONTH,-1,GETDATE())))
DECLARE @Vormonatsbeginn DATE = DATEADD(DAY, 1, EOMONTH(DATEADD(MONTH,-2,GETDATE())))
DECLARE @VorDreiszigTagen DATE = DATEADD(DAY,-29,GETDATE())
DECLARE @VorVierMonaten DATE = DATEADD(DAY, 1,EOMONTH(DATEADD(MONTH,-4,GETDATE())))
DECLARE @Jahresbeginn DATE = DATEADD(DAY, 1, DATEADD(YEAR, DATEDIFF(YEAR, -1,
GETDATE())-1, -1))
DECLARE @Vor365Tagen DATE = DATEADD(DAY,-365,GETDATE())
DECLARE @Vorjahresbeginn DATE = DATEADD(YEAR, -1, DATEADD(DAY, 1, DATEADD(YEAR,
DATEDIFF(YEAR, -1, GETDATE())-1, -1)))
SELECT
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @Monatsbeginn AND @Heute THEN 1 ELSE 0 END)),' mit (',
CONVERT(VARCHAR(100),1+DATEDIFF(day,@Monatsbeginn,@Heute)-SUM(CASE WHEN
TagesBestand.Bestand > 0 AND TagesBestand.Tag BETWEEN @Monatsbeginn AND @Heute THEN 1
ELSE 0 END)), ' Tage ohne)') AS 'Akt. Monat',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @Vormonatsbeginn AND DATEADD(DAY,-1,@Monatsbeginn) THEN 1
ELSE 0 END)),' mit (', CONVERT(VARCHAR(100),1+DATEDIFF(day,
@Vormonatsbeginn,DATEADD(DAY,-1,@Monatsbeginn))-SUM(CASE WHEN TagesBestand.Bestand > 0
AND TagesBestand.Tag BETWEEN @Vormonatsbeginn AND DATEADD(DAY,-1,@Monatsbeginn) THEN 1
ELSE 0 END)), ' Tage ohne)') AS 'Vormonat',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @VorDreiszigTagen AND @Heute THEN 1 ELSE 0 END)),' mit (',
CONVERT(VARCHAR(100),30-SUM(CASE WHEN TagesBestand.Bestand > 0 AND TagesBestand.Tag
BETWEEN @VorDreiszigTagen AND @Heute THEN 1 ELSE 0 END)), ' Tage ohne)') AS 'Letzte 30
Tage',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @VorVierMonaten AND DATEADD(DAY,-1,@Monatsbeginn) THEN 1 ELSE
0 END)),' mit (', CONVERT(VARCHAR(100),1+DATEDIFF(day,@VorVierMonaten,DATEADD(DAY,-1,
@Monatsbeginn))-SUM(CASE WHEN TagesBestand.Bestand > 0 AND TagesBestand.Tag BETWEEN
@VorVierMonaten AND DATEADD(DAY,-1,@Monatsbeginn) THEN 1 ELSE 0 END)), ' Tage ohne)')
AS 'Letzte 3 Monate',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @Jahresbeginn AND @Heute THEN 1 ELSE 0 END)),' mit (',
CONVERT(VARCHAR(100),1+DATEDIFF(day,@Jahresbeginn,@Heute)-SUM(CASE WHEN
TagesBestand.Bestand > 0 AND TagesBestand.Tag BETWEEN @Jahresbeginn AND @Heute THEN 1
ELSE 0 END)), ' Tage ohne)') AS 'Akt. Jahr',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @Vor365Tagen AND @Heute THEN 1 ELSE 0 END)),' mit (',
CONVERT(VARCHAR(100),365-SUM(CASE WHEN TagesBestand.Bestand > 0 AND TagesBestand.Tag
BETWEEN @Vor365Tagen AND @Heute THEN 1 ELSE 0 END)), ' Tage ohne)') AS 'Letzte 365
Tage',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @Vorjahresbeginn AND DATEADD(DAY,-1,@Jahresbeginn) THEN 1
ELSE 0 END)),' mit (', CONVERT(VARCHAR(100),1+DATEDIFF(day,
@Vorjahresbeginn,DATEADD(DAY,-1,@Jahresbeginn))-ISNULL(SUM(CASE WHEN
TagesBestand.Bestand > 0 AND TagesBestand.Tag BETWEEN @Vorjahresbeginn AND
DATEADD(DAY,-1,@Jahresbeginn) THEN 1 ELSE 0 END),0)), ' Tage ohne)') AS 'Vorjahr',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 THEN 1 ELSE 0
END)),' mit (', CONVERT(VARCHAR(100),COUNT(*)-SUM(CASE WHEN TagesBestand.Bestand > 0
THEN 1 ELSE 0 END)), ' Tage ohne)') AS 'Gesamt'
FROM
(SELECT
Datum AS Tag,
Bestand = (SELECT SUM(tWarenLagerEingang.fAnzahl) - SUM(ISNULL(Warenausgang.fAnzahl,
0.0)) AS Bestand
 FROM dbo.tWarenLagerEingang
LEFT JOIN
(
SELECT SUM(ISNULL(tWarenLagerAusgang.fAnzahl, 0.0)) AS fAnzahl,
 tWarenLagerAusgang.kWarenLagerEingang
FROM dbo.tWarenLagerAusgang
WHERE ISNULL(tWarenLagerAusgang.dErstellt, GETDATE()) < DATEADD(dd, +1, Datum)
GROUP BY tWarenLagerAusgang.kWarenLagerEingang
) AS Warenausgang ON tWarenLagerEingang.kWarenLagerEingang =
Warenausgang.kWarenLagerEingang
WHERE tWarenLagerEingang.dErstellt < DATEADD(dd, +1, Datum) AND
tWarenLagerEingang.kArtikel = @Key)
FROM
(SELECT date as DATUM FROM ( SELECT DATE = DATEADD(DAY, rn - 1,
@ArtikelErstAnlieferung) FROM (
 SELECT TOP (DATEDIFF(DAY, @ArtikelErstAnlieferung, DATEADD(DAY,1,@Heute)))
 rn = ROW_NUMBER() OVER (ORDER BY s1.[object_id])
 FROM sys.all_objects AS s1
 CROSS JOIN sys.all_objects AS s2
 ORDER BY s1.[object_id] ) AS x ) AS y) AS z
) AS TagesBestand
 
  • Gefällt mir
Reaktionen: Wolle Kreativ

Hanthyphy

Aktives Mitglied
5. Juli 2019
89
11
3. VERKAUFT per Plattform:
SQL:
[/B]
SELECT    tPlattform.cName AS 'Plattform',
        ISNULL(jAktTag.absatz, 0) AS 'Heute',
        ISNULL(jGestern .absatz, 0) AS 'Gestern',    
        ISNULL(jAktMonat.absatz, 0) AS 'Akt. Monat',
        ISNULL(jVorMonat.absatz, 0) AS 'Vormonat',
        ISNULL(jLetzte30Tage.absatz, 0) AS 'Letzte 30 Tage',
        ISNULL(jLetzte3Monate.absatz, 0) AS 'Letzte 3 Monate',    
        ISNULL(jAktJahr.absatz, 0) AS 'Akt. Jahr',
        ISNULL(jLetzte365Tage.absatz, 0) AS 'Letzte 365 Tage',
        ISNULL(jVorjahr.absatz, 0) AS 'Vorjahr',
        ISNULL(jGesamt.absatz, 0) AS 'Gesamt'
FROM tPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
            AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
            AND DAY(tBestellung.dErstellt) = DAY(getdate())
    GROUP BY nPlatform
) as jAktTag on jAktTag.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
            AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
            AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))
    GROUP BY nPlatform
) as jGestern on jGestern.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
            AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
    GROUP BY nPlatform
) as jAktMonat on jAktMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
            AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))
    GROUP BY nPlatform
) as jVorMonat on jVorMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())
    GROUP BY nPlatform
) as jLetzte30Tage on jLetzte30Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())
    GROUP BY nPlatform
) as jLetzte3Monate on jLetzte3Monate.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
    GROUP BY nPlatform
) as jAktJahr on jAktJahr.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())
    GROUP BY nPlatform
) as jLetzte365Tage on jLetzte365Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE    tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))
    GROUP BY nPlatform
) as jVorjahr on jVorjahr.nPlatform = tPlattform.nPlattform
JOIN (
    SELECT    nPlatform,
            ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
        AND tbestellung.cType = 'B'
    GROUP BY nPlatform
) as jGesamt on jGesamt.nPlatform = tPlattform.nPlattform
UNION
SELECT 'Alle Plattformen' AS 'Plattform',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
            AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
            AND DAY(tBestellung.dErstellt) = DAY(getdate())) as 'Heute',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
            AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
            AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))) as 'Gestern',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
            AND MONTH(tBestellung.dErstellt) = MONTH(getdate())) as 'Akt. Monat',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
            AND tbestellung.cType = 'B'
            AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
            AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))) as 'Vormonat',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
    AND tbestellung.cType = 'B'
    AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())) as 'Letzte 30 Tage',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
    AND tbestellung.cType = 'B'
    AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())) as 'Letzte 3 Monate',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
    AND tbestellung.cType = 'B'
    AND YEAR(tBestellung.dErstellt) = YEAR(getdate())) as 'Akt. Jahr',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
    AND tbestellung.cType = 'B'
    AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())) as 'Letzte 365 Tage',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
    AND tbestellung.cType = 'B'
    AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))) as 'Vorjahr',
    (SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tbestellpos.tArtikel_kArtikel = @Key
    AND tbestellung.cType = 'B') as 'Gesamt'
ORDER BY Plattform

Moin,

hat zufällig jemand eine überarbeitete Version dieser SQL-Abfrage für die 1.6+ am Start?

Vielen Dank im Voraus!
 

Maria HD

Aktives Mitglied
17. Oktober 2015
42
3
HI, kann mir jemand bei der Abfrage helfen?
Ich müsste die Tabelle um die Zeile MHD erweitern.

Es soll immer das MHD auf dem Platz angezeigt werden.
Bekommt das jemand hin? Hab leider kein SQL Wissen. Danke schonmal



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
 

Hanthyphy

Aktives Mitglied
5. Juli 2019
89
11
Anbei die Nr. 1 mit Zustandspalte:
SQL:
SELECT    tWarenLager.cName AS Warenlager,
        tWarenLagerPlatz.cName AS Lagerplatz,
       ROUND(CONVERT(FLOAT, ISNULL(SUM(tWarenLagerEingang.fAnzahlAktuell), 0.0)), 2) AS Bestand,
       tZustandSprache.cName AS Artikelzustand
FROM dbo.tWarenLagerEingang
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
JOIN dbo.tartikel ON tartikel.kArtikel = tWarenLagerEingang.kArtikel
JOIN dbo.tSpracheUsed ON nStandard = 1
JOIN dbo.tZustandSprache ON tZustandSprache.kZustand = tartikel.kZustand
    AND tZustandSprache.kSprache = tSpracheUsed.kSprache
WHERE    tWarenLagerEingang.fAnzahlAktuell > 0.0
        AND tWarenLagerEingang.kArtikel = @Key
GROUP BY    tWarenLager.cName,
            tWarenLagerPlatz.cName,
            tZustandSprache.cName
ORDER BY    tWarenLager.cName,
            tWarenLagerPlatz.cName,
            tZustandSprache.cName
Hallo,

ist geplant, die im Guide veröffentlichten Eigenen Übersichten JTL-seitig auf die Tabellen ab 1.6 zu aktualisieren?

https://guide.jtl-software.de/jtl-wawi/artikel/beispiele-fuer-eigene-uebersichten-fuer-artikel/

Das würde uns und sicher vielen anderen sehr weiterhelfen :)
 

marsblau

Gut bekanntes Mitglied
7. September 2019
105
12
Zulaufübersicht der letzten 90 Tage

SELECT
FORMAT(LiefB.dErstellt, 'dd.MM.yyyy') AS "Bestelldatum",
Lief.cFirma AS "Lieferant",
LiefB.cEigeneBestellnummer AS "Bestellnummer",
LiefB.cBezugsAuftragsNummer AS "Auftrag",
CONVERT(decimal (17,2),LiefBP.fEKNetto) AS "EK",
CONVERT(DECIMAL(25, 0), LiefBP.fMenge) AS "Bestellmenge",
LiefBP.cLieferantenBezeichnung AS "Artikelname"
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.dErstellt > DATEADD(DAY, -90, GETDATE())
ORDER BY 'Bestellnummer' DESC
 

Hanthyphy

Aktives Mitglied
5. Juli 2019
89
11
Tage mit/ohne Bestand
Eigene Übersicht wie viele Tage in verschiedenen Zeiträumen Bestand > 0 auf dem Artikel war, bzw. kein Bestand

SQL:
DECLARE @Heute DATE = GETDATE()
DECLARE @ArtikelErstellDatum DATE = (SELECT CAST(dErstelldatum AS DATE) FROM tArtikel
WHERE kArtikel = @Key)
DECLARE @ArtikelErstAnlieferung DATE = ISNULL((SELECT
CAST(MIN(tWarenlagerEingang.dErstellt) AS DATE) FROM tWarenlagerEingang WHERE
tWarenLagerEingang.kArtikel = @Key),@ArtikelErstellDatum)
DECLARE @Monatsbeginn DATE = DATEADD(DAY, 1, EOMONTH(DATEADD(MONTH,-1,GETDATE())))
DECLARE @Vormonatsbeginn DATE = DATEADD(DAY, 1, EOMONTH(DATEADD(MONTH,-2,GETDATE())))
DECLARE @VorDreiszigTagen DATE = DATEADD(DAY,-29,GETDATE())
DECLARE @VorVierMonaten DATE = DATEADD(DAY, 1,EOMONTH(DATEADD(MONTH,-4,GETDATE())))
DECLARE @Jahresbeginn DATE = DATEADD(DAY, 1, DATEADD(YEAR, DATEDIFF(YEAR, -1,
GETDATE())-1, -1))
DECLARE @Vor365Tagen DATE = DATEADD(DAY,-365,GETDATE())
DECLARE @Vorjahresbeginn DATE = DATEADD(YEAR, -1, DATEADD(DAY, 1, DATEADD(YEAR,
DATEDIFF(YEAR, -1, GETDATE())-1, -1)))
SELECT
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @Monatsbeginn AND @Heute THEN 1 ELSE 0 END)),' mit (',
CONVERT(VARCHAR(100),1+DATEDIFF(day,@Monatsbeginn,@Heute)-SUM(CASE WHEN
TagesBestand.Bestand > 0 AND TagesBestand.Tag BETWEEN @Monatsbeginn AND @Heute THEN 1
ELSE 0 END)), ' Tage ohne)') AS 'Akt. Monat',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @Vormonatsbeginn AND DATEADD(DAY,-1,@Monatsbeginn) THEN 1
ELSE 0 END)),' mit (', CONVERT(VARCHAR(100),1+DATEDIFF(day,
@Vormonatsbeginn,DATEADD(DAY,-1,@Monatsbeginn))-SUM(CASE WHEN TagesBestand.Bestand > 0
AND TagesBestand.Tag BETWEEN @Vormonatsbeginn AND DATEADD(DAY,-1,@Monatsbeginn) THEN 1
ELSE 0 END)), ' Tage ohne)') AS 'Vormonat',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @VorDreiszigTagen AND @Heute THEN 1 ELSE 0 END)),' mit (',
CONVERT(VARCHAR(100),30-SUM(CASE WHEN TagesBestand.Bestand > 0 AND TagesBestand.Tag
BETWEEN @VorDreiszigTagen AND @Heute THEN 1 ELSE 0 END)), ' Tage ohne)') AS 'Letzte 30
Tage',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @VorVierMonaten AND DATEADD(DAY,-1,@Monatsbeginn) THEN 1 ELSE
0 END)),' mit (', CONVERT(VARCHAR(100),1+DATEDIFF(day,@VorVierMonaten,DATEADD(DAY,-1,
@Monatsbeginn))-SUM(CASE WHEN TagesBestand.Bestand > 0 AND TagesBestand.Tag BETWEEN
@VorVierMonaten AND DATEADD(DAY,-1,@Monatsbeginn) THEN 1 ELSE 0 END)), ' Tage ohne)')
AS 'Letzte 3 Monate',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @Jahresbeginn AND @Heute THEN 1 ELSE 0 END)),' mit (',
CONVERT(VARCHAR(100),1+DATEDIFF(day,@Jahresbeginn,@Heute)-SUM(CASE WHEN
TagesBestand.Bestand > 0 AND TagesBestand.Tag BETWEEN @Jahresbeginn AND @Heute THEN 1
ELSE 0 END)), ' Tage ohne)') AS 'Akt. Jahr',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @Vor365Tagen AND @Heute THEN 1 ELSE 0 END)),' mit (',
CONVERT(VARCHAR(100),365-SUM(CASE WHEN TagesBestand.Bestand > 0 AND TagesBestand.Tag
BETWEEN @Vor365Tagen AND @Heute THEN 1 ELSE 0 END)), ' Tage ohne)') AS 'Letzte 365
Tage',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 AND
TagesBestand.Tag BETWEEN @Vorjahresbeginn AND DATEADD(DAY,-1,@Jahresbeginn) THEN 1
ELSE 0 END)),' mit (', CONVERT(VARCHAR(100),1+DATEDIFF(day,
@Vorjahresbeginn,DATEADD(DAY,-1,@Jahresbeginn))-ISNULL(SUM(CASE WHEN
TagesBestand.Bestand > 0 AND TagesBestand.Tag BETWEEN @Vorjahresbeginn AND
DATEADD(DAY,-1,@Jahresbeginn) THEN 1 ELSE 0 END),0)), ' Tage ohne)') AS 'Vorjahr',
CONCAT(CONVERT(VARCHAR(100),SUM(CASE WHEN TagesBestand.Bestand > 0 THEN 1 ELSE 0
END)),' mit (', CONVERT(VARCHAR(100),COUNT(*)-SUM(CASE WHEN TagesBestand.Bestand > 0
THEN 1 ELSE 0 END)), ' Tage ohne)') AS 'Gesamt'
FROM
(SELECT
Datum AS Tag,
Bestand = (SELECT SUM(tWarenLagerEingang.fAnzahl) - SUM(ISNULL(Warenausgang.fAnzahl,
0.0)) AS Bestand
 FROM dbo.tWarenLagerEingang
LEFT JOIN
(
SELECT SUM(ISNULL(tWarenLagerAusgang.fAnzahl, 0.0)) AS fAnzahl,
 tWarenLagerAusgang.kWarenLagerEingang
FROM dbo.tWarenLagerAusgang
WHERE ISNULL(tWarenLagerAusgang.dErstellt, GETDATE()) < DATEADD(dd, +1, Datum)
GROUP BY tWarenLagerAusgang.kWarenLagerEingang
) AS Warenausgang ON tWarenLagerEingang.kWarenLagerEingang =
Warenausgang.kWarenLagerEingang
WHERE tWarenLagerEingang.dErstellt < DATEADD(dd, +1, Datum) AND
tWarenLagerEingang.kArtikel = @Key)
FROM
(SELECT date as DATUM FROM ( SELECT DATE = DATEADD(DAY, rn - 1,
@ArtikelErstAnlieferung) FROM (
 SELECT TOP (DATEDIFF(DAY, @ArtikelErstAnlieferung, DATEADD(DAY,1,@Heute)))
 rn = ROW_NUMBER() OVER (ORDER BY s1.[object_id])
 FROM sys.all_objects AS s1
 CROSS JOIN sys.all_objects AS s2
 ORDER BY s1.[object_id] ) AS x ) AS y) AS z
) AS TagesBestand
Hallo,

die LVE scheint nicht mehr richtig zu funktionieren (zeigt teilweise -Tage an).
Gibt es hier vielleicht eine aktuellere Version?

Vielen Dank im Voraus!
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Bundle-Artikel für bestimmte Warengruppen erzwingen User helfen Usern - Fragen zu JTL-Wawi 2
Neu Wie komme ich die Hintergrundfarben entfernt im Artikel Einrichtung von JTL-Shop4 0
Neu Artikel von FBM auf FBA umschalten in JTL (SChattenartikel) Amazon-Anbindung - Fehler und Bugs 0
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt - Artikel JTL-Wawi 1.10 0
Neu Angeblich doppelter Artikel muss auf Display ausgewählt werden JTL-POS - Fehler und Bugs 4
Sämtliche Artikel duplizieren JTL-Wawi 1.9 3
Neu Artikel duplizieren für neuen Shop JTL-Wawi - Ideen, Lob und Kritik 3
Neu Artikel stehen auf in Bearbeitung und es geht nicht weiter Amazon-Anbindung - Fehler und Bugs 0
Neu Gleiche Artikel werden beim Kauf nicht als eine Auftragsposition zusammengefasst Otto.de - Anbindung (SCX) 0
Artikelübersicht - Anzeige ob Artikel im Shop (NICHT Kasse) aktiv oder nicht - möglich ? JTL-Wawi 1.9 7
Neu Artikel-Sortiernummern exportieren? User helfen Usern - Fragen zu JTL-Wawi 5
Beantwortet (gelöst) Fehler Shopify Abgleich - Bestellungen werden plötzlich nicht mehr importiert / Artikel wahrscheinlich auch nicht aktualisiert Shopify-Connector 2
Neu Lagerbestand nach Alter der Artikel filtern User helfen Usern - Fragen zu JTL-Wawi 1
Artikel Stammdaten einfügen, eigene Felder einzeln auslassen JTL-Wawi 1.10 2
Neu Artikel aus der Kategorieübersicht zum Warenkorb hinzufügen? Allgemeine Fragen zu JTL-Shop 3
Artikel aus Selektion verschieben JTL-Wawi 1.10 1
Artikel aus Amazon löschen JTL-Wawi 1.7 10
Artikel stehen auf eingestellt erscheinen aber nicht bei Kaufland kaufland.de - Anbindung (SCX) 0
Neu Workflow Artikel Erscheint am Datum überschritten, Bestandsführung aktivieren. User helfen Usern - Fragen zu JTL-Wawi 2
Neu COUPON - auf bestimmte Artikel beschränken Allgemeine Fragen zu JTL-Shop 1
Artikel mehreren Kategorien per Ameise zuordnen JTL-Wawi 1.9 3
Artikel Duplizieren bringt Fehlermeldung und WaWi hängt sich auf WaWi 1.10.10.3 JTL-Wawi 1.10 6
Neu Idee: Artikel-, Sammel- und VPE-Etikett (oder auch Gebinde) verfügbar machen JTL-Plan&Produce - Ideen, Lob und Kritik 0
Neu JTL-Connector (Drittanbieter) - Kein product.push (oder andere Artikel Updates) über Worker User helfen Usern - Fragen zu JTL-Wawi 0
Neu HOOK_PRODUCTFILTER_GET_BASE_QUERY - Artikel korrekt ausfiltern. Allgemeine Fragen zu JTL-Shop 3
Neu EBAY Keine Rückmeldung ob Artikel eingestellt wurde eBay-Anbindung - Fehler und Bugs 2
Neu Anzahl Artikel in der Artikelübersicht Allgemeine Fragen zu JTL-Shop 3
Neu Inaktiver Artikel taucht noch im Suchfeld des Shops auf Allgemeine Fragen zu JTL-Shop 7
Artikel wird nach Erstellung nicht in der Wawi angezeigt, ist aber in der Datenbank vorhanden. JTL-Wawi 1.9 4
Auswertung & Statistik Cross Selling Artikel JTL-Wawi 1.9 6
In Diskussion Workflow: Prüfen ob Artikel mit Fehlbestend nach 48h im Zulauf JTL-Workflows - Ideen, Lob und Kritik 2
Neu "Artikel-Label" auf Etiketten ausgeben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 6
In welche Länder wird ein Artikel verkauft? Report erstellen JTL-Wawi 1.8 1
Neu Artikel Bestandsimport via Ameise User helfen Usern - Fragen zu JTL-Wawi 9
Neu WMS Mobile Wareneingang: Etikett für Artikel drucken Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
Neu Hochladen Artikel nicht möglich wg. Fehler (Shopware) User helfen Usern - Fragen zu JTL-Wawi 0
Gelöst eigene Chargen Übersicht für "Verknüpfte Artikel" Eigene Übersichten in der JTL-Wawi 7
Neu Größentabelle bei Artikel anzeigen Allgemeine Fragen zu JTL-Shop 13
Neu Export von Artikelnummern, in denen ein Artikel als Komponente enthalten ist mittels JTL-Ameise Arbeitsabläufe in JTL-Wawi 2
Neu Läd keine Kategorien oder Artikel hoch Onlineshop-Anbindung 0
Neu Abbruch Übertragung JTL/WooCommerce wenige Artikel Onlineshop-Anbindung 0
Neu Neuen Artikel anlegen (innerhalb der Auftragsverwaltung) JTL-Wawi - Ideen, Lob und Kritik 4
Neu Artikel ohne Bestand auf "Inaktiv" setzen Shopware-Connector 1
Artikel werden bei Ebay und im Shop willkürlich gelöscht JTL-Wawi 1.9 0
Einen Artikel nur Teilweise gutschreiben, dabei mit Versandkosten verrechnen JTL-Wawi 1.7 0
Kurz- Langbeschreibung Artikel lässt sich für den Ausdruck nicht einstellen bzw. abstellen. JTL-Wawi 1.9 0
Gelöst JTL Shop - Artikel Konfigurator - Menge veränderbar Templates für JTL-Shop 2
Verkaufte Artikel von eBay werden in wawi nicht angezeigt . JTL-Wawi 1.9 0
Neu Inaktive Artikel werden zu Amazon geladen Amazon-Anbindung - Fehler und Bugs 0
Neu Fehlermeldung bei Synchronisation aus der WaWi: "Artikel "XYZ" kann nicht hochgeladen werden, da der Shop den Steuersatz '19' nicht unterstützt." WooCommerce-Connector 1

Ähnliche Themen