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
300
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
204
156
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

Gut bekanntes Mitglied
5. Juli 2019
110
15
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
43
4
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

Gut bekanntes Mitglied
5. Juli 2019
110
15
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

Sehr aktives Mitglied
7. September 2019
144
27
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

Gut bekanntes Mitglied
5. Juli 2019
110
15
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 Verkaufskanal Sichtbarkeit Zuweisung Artikel in Shopware gelöscht - Connector Bug? Shopware-Connector 0
Eigenes Feld aus Artikel auf Lagerpackliste ausgeben JTL-Wawi 1.11 1
Neu Artikel-Menü zurück Allgemeine Fragen zu JTL-Shop 1
JTL Artikel-Maske leer/verschoben (1.11.7) JTL-Wawi 1.11 2
Neu Ein Artikel in der Kategorie Allgemeine Fragen zu JTL-Shop 5
Neu nicht lieferbare Artikel aus Bestellung wieder auf die Einkaufsliste setzen ?! User helfen Usern - Fragen zu JTL-Wawi 1
Neu Streichpreise oder Rabatte für Staffelpreise von einem Artikel einrichten? Wie am Besten? JTL-Wawi 1.6 0
Neu Eigene Artikel Felder im JTL Shop anzeigen lassen User helfen Usern - Fragen zu JTL-Wawi 4
Neu Eigenes Feld aus Artikel in Artikeletikett ausgeben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Mobile Web-App für JTL-WaWi — Aufträge, Artikel & Lager direkt vom Smartphone JTL-Wawi App 0
Neu Artikel ändern Bilder erst, wenn alle Variationen gewählt wurden Allgemeine Fragen zu JTL-Shop 1
Auswertung welche Kunden kaufen welche Artikel in Zeitraum x JTL-Wawi 1.11 4
Artikel Wareneingang buchen mit anderer Währung? JTL-Wawi 1.10 0
Neu Artikel letzte 10 Versanddaten, sortiert nach Datum mit Plattform Eigene Übersichten in der JTL-Wawi 4
Neu Versandklasse im Checkout am Artikel anzeigen Allgemeine Fragen zu JTL-Shop 1
Kein Versenden-Button wenn "Artikel vor dem Verpacken bestätigen" aktiv JTL-Wawi 1.11 2
Neu Versandklassen für Kategorien / Unterkategorien bzw. Artikel im Warenkorb User helfen Usern - Fragen zu JTL-Wawi 0
OTTO Artikel Zuweisung nicht möglich (1.11.6) JTL-Wawi 1.11 0
Neu Artikel Rücknahme über Kassenbon von letzter Woche in JTL-Pos JTL-POS - Ideen, Lob und Kritik 2
Neu eBay Artikel kommen in WaWi sporadisch als "Angebotsnummer" ohne Text JTL-Wawi - Fehler und Bugs 1
Artikel Eigene Felder kommen nur beim ersten Shopabgleich in den JTL-Shop JTL-Wawi 1.11 2
Neu Abgleich erstellt neue Artikel aber ohne Bestand und Bestandsführung WooCommerce-Connector 2
Neu ebay Angebote Vorlagen im Artikel JTL Ameise - Eigene Exporte 0
Artikel erkennbar machen wenn nur als Dropshippimg zur Verfügung gestellt wird JTL-Wawi 1.10 5
Beantwortet Keine Ausgabe des Artikelnamens (Artikel.Bezeichnung) im Artikeletikett Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu Eigene Felder in ZUGFeRD integrieren User helfen Usern - Fragen zu JTL-Wawi 0
Neu Eigene Umsatzsteuer-ID fehlt oft in Aufträgen JTL-Wawi - Fehler und Bugs 3
Ameise: Eigene Exporte umbenennen? JTL-Wawi 1.8 6
Neu eigene Felder Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 5
Neu Händlerartikelnummer druch eigene im Auftrag ersetzen User helfen Usern - Fragen zu JTL-Wawi 0
Ameisen-Vorlagen Attribute und Eigene Felder lassen sich nicht speichern JTL-Wawi 1.11 2

Ähnliche Themen