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
182
146
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
86
9
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
35
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
86
9
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

Aktives Mitglied
7. September 2019
83
8
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
86
9
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
Artikel mit unterschiedlichen Währungen JTL-Wawi 1.9 1
Listen Ansicht für Artikel deaktivieren Einrichtung JTL-Shop5 2
Neu Artikel an der Kasse beim scannen nur über Artikelnummer, nicht über GTIN identifizieren (Gebrauchtware, GTIN mehrfach in der Wawi) Allgemeine Fragen zu JTL-POS 0
Automatischer bestandsabgleich für mehrere Artikel JTL-Wawi 1.8 1
Neu Spam über Frage zum Artikel User helfen Usern - Fragen zu JTL-Wawi 9
Neu Export von Kunden, die in der Vergangenheit bereits bestimmte Artikel gekauft haben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 10
Paypal Kontosperre / Verbot bestimmte Artikel in bestimmte Länder zu liefern - wie Umsetzen? JTL-Wawi 1.9 2
Neu Artikel Verkaufsanzahl Allgemeine Fragen zu JTL-Shop 2
Neu Artikel zählen wenn Bedingung erfüllt Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Artikel-Etiketten zusammen mit Pickliste drucken Arbeitsabläufe in JTL-Wawi 0
Neu Sortierung Artikel Allgemeine Fragen zu JTL-Shop 4
Neu Google Shopping Plugin - Artikel filtern Plugins für JTL-Shop 3
Neu "Artikel erscheint" Datum mit auf RE drucken Arbeitsabläufe in JTL-Wawi 2
Neu Artikel Bezeichnugen mit einer Funktion variabel abschneiden Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu Workflow für Warenpost nur wenn bestimmte Artikel in Bestellung User helfen Usern - Fragen zu JTL-Wawi 1
Neu Artikel wird in der der Detailbeschreibung nicht angezeigt Allgemeine Fragen zu JTL-Shop 0
Neu Automatischer Abgleich von Artikel Daten Schnittstellen Import / Export 5
Artikel in andere Kaufland-Länder ? kaufland.de - Anbindung (SCX) 1
Gelöst zusätzliche Kasse - Tablet liest Artikel in Dauerschleife ein und zeigt aber keine an JTL-POS - Fehler und Bugs 4
eBay Abgleich Artikel beendet, Logbuch kein Eintrag JTL-Wawi 1.9 1
Artikel lassen sich plötzlich nicht mehr öffnen JTL-Wawi 1.9 2
Neu Import von CSV und XML (CSV=Artikel, XML=Variationen der Artikel) JTL-Ameise - Ideen, Lob und Kritik 6
Artikel auf Nr.1 setzen JTL-Wawi 1.9 15
Neu Produktübersicht Artikel Hover aktiv Allgemeine Fragen zu JTL-Shop 2
Neu Windows 11 - .NET Installation beschädigt - Artikel öffnen nicht möglich JTL-Wawi - Fehler und Bugs 10
Neu Bei Verkaufskanaldeaktivierung eines Child-Artikels löscht Prestashop Connector 2.0.0 den Parent-Artikel samt aller Child-Artikel des Parents PrestaShop-Connector 0
Aufpreis in Prozent in der Artikel liste Anzeigen. JTL-Wawi 1.9 0
Neu Einstellung Standardsortierung überschreibt individuelle Sortierung für "besondere Artikel" JTL-Shop - Fehler und Bugs 1
Neu Workflow nur wenn bestimmte Artikel nicht vorhanden User helfen Usern - Fragen zu JTL-Wawi 2
Neu Neues Plugin: "Schnellkauf Plus" (Artikel direkt durch die Eingabe von Artikelnummer, GTIN, ISBN, ASIN, HAN oder UCP in den Warenkorb legen) Plugins für JTL-Shop 2
Neu Artikel aus JTL können mit Duplicate Entry for key primary nicht abgeglichen werden PrestaShop-Connector 0
Neu FBA-Umlagerung: Einige Artikel haben keine Amazon-SKU - warum? Arbeitsabläufe in JTL-Wawi 3
[Bug] 🐞 Artikel anlegen -> Hersteller grünes + klicken > neuen Hersteller JTL-Wawi 1.9 2
Neu Bild per SQL Query aus lesen aus von Artikel Bildplattform Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Artikel nicht auf Pickliste trotz Bestand - Auftrag wird teilgeliefert JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Statistik-Modul: Katastrophe in 'Netto'-Berechnung (Summen) je Artikel (Stücklistenartikel werden nicht gezählt) JTL-Wawi 1.9 1
Neu Auftragsimport -> Artikel im Listing leer / falscher Wert Ist bezahlt JTL-Ameise - Fehler und Bugs 0
Neu Workflow: Artikel aus Kategorie löschen, wenn Sonderpreis abgelaufen Arbeitsabläufe in JTL-Wawi 0
Neu 1 Artikel in verschiedenen Stückzahlen (Mehrfachpack) User helfen Usern 0
Ebay Angebotstitel und Untertitel in Artikel speichern JTL-Wawi 1.9 1
Neu ERLEDIGT: Ausliefern von Artikel auf Rechnung User helfen Usern - Fragen zu JTL-Wawi 1
Neu Stückliste mit (oder) Artikel User helfen Usern - Fragen zu JTL-Wawi 2
Bedingte Formatierungen Artikel - Aktiv JTL-Wawi 1.9 4
Neu Ändern der Artikelseite / OPC ändert nur Seite für einen Artikel / Suche nach globale Lösung für alle Artikelseiten Templates für JTL-Shop 5
Neu Anlegen neuer Artikel - Trotzdem Übertragung gesamter Bilddatenbank zu Shopify ??? Shopify-Connector 1
Neu Datenmigration-Artikel werden nicht angezeigt Starten mit JTL: Projektabwicklung & Migration 1
Neu Meta-Daten vom Artikel werden von Google nicht genutzt Allgemeine Fragen zu JTL-Shop 3
Neu Welche Artikel werden zu Shopify übertragen? Alle? Shopify-Connector 5
Neu AMAZON - zwei verschiedene EAN bei einem Artikel User helfen Usern 3
Neu Eigene Felder aus Artikel in Rechnungsmail Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0

Ähnliche Themen