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
147
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
88
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
88
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
86
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
88
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
Neu JTL Artikel auf Shopify als Varianten anzeigen Shopify-Connector 2
Seite Artikel->Sonderpreise und Sonderpreiskationen definieren JTL-Wawi 1.9 0
Neu Artikel mit negativem Preis (Gutschein) eingeben kompliziert...geht das einfacher? Allgemeine Fragen zu JTL-POS 1
Neu Artikelübersicht zeigt 2 Bilder pro Artikel oder leeren Rahmen Allgemeine Fragen zu JTL-Shop 5
Neu SQL Vartable für Reservierte Artikel gesucht User helfen Usern - Fragen zu JTL-Wawi 2
Neu Umfrage: Scanpflicht auf Artikelebene (Nur für bestimmte Artikel aktivieren/deaktivieren) JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 0
Neu Verbrauchsmaterial, einem Artikel neue OVP zuweisen User helfen Usern - Fragen zu JTL-Wawi 1
Neu Artikelanlage von Artikel/Ersatzteile die zu verschiedenen Modellen passen User helfen Usern - Fragen zu JTL-Wawi 3
Online seit: bei Artikel einstellen JTL-Wawi 1.8 0
Neu Artikel per Dropshipping versenden und selbst versenden Arbeitsabläufe in JTL-Wawi 1
In Diskussion Hinweis im WMS Ausgeben wenn ein bestimmter Artikel verpackt wird über WMS JTL-Workflows - Ideen, Lob und Kritik 5
Neu Artikel optische Brille anlegen User helfen Usern - Fragen zu JTL-Wawi 4
Neu Artikel mit Zustand beschädigt wird nicht als eigenständiger Artikel in der WaWi angezeigt User helfen Usern - Fragen zu JTL-Wawi 1
Neu Artikel im Zulauf werden nicht angezeigt Betrieb / Pflege von JTL-Shop 8
Neu Gibt es einen Import von Artikeltexten die pro Artikel als .txt geliefert werden? JTL-Ameise - Ideen, Lob und Kritik 1
Neu GTIN/EAN für mehrere Artikel verwenden Arbeitsabläufe in JTL-Wawi 2
Neu Liste verkaufter Artikel mit VK Fibu-Konto aus der Artikelkategorie User helfen Usern - Fragen zu JTL-Wawi 4
Neu Wie kann ich Artikel mit Lagerbestand 0 beim Import inaktiv setzen) JTL-Ameise - Ideen, Lob und Kritik 17
Neu Artikel wird nach Auswahl der Variante nicht mehr angezeigt JTL-Shop - Fehler und Bugs 3
Beschreibung Konfig. Artikel Einrichtung JTL-Shop5 1
Neu Artikel lässt sich im Shop 5.2.5 über die Wawi nicht löschen JTL-Shop - Fehler und Bugs 2
In Diskussion E-Mail an Lieferanten bei Verkauf einer seiner Artikel JTL-Workflows - Ideen, Lob und Kritik 4
Neu Artikel Bild aus anderer Quelle importieren funktioniert nicht JTL-Wawi - Fehler und Bugs 4
Neu Doppelte Artikel und SEO User helfen Usern - Fragen zu JTL-Wawi 0
Neu Artikel gelöscht neu anlegen nicht möglich da bereits vorhanden User helfen Usern - Fragen zu JTL-Wawi 2
Neu Artikel mit 2 verschiedenen Steuersätzen anbieten User helfen Usern - Fragen zu JTL-Wawi 0
Neu WMS Wareneingang falscher Artikel auf Etikett JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu Artikel CSV Exporte dem Kunden zur verfügung stellen. Allgemeine Fragen zu JTL-Shop 7
Tipps für effiziente Änderungen bestehender Artikel JTL-Wawi 1.7 2
Neu Wie in der Wawi gebrauchte Artikel vom Endkunden einkaufen User helfen Usern - Fragen zu JTL-Wawi 4
Neu Artikel- und Versandgewicht bei Stücklisten wird nicht nachberechnet JTL-Version 1.8.12.2 JTL-Wawi - Fehler und Bugs 4
Neu Amazon Gutschriften kommen in den Status "Amazon Artikel nicht in Bestellung" und werden nicht übernommen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Einzelne Artikel über stückliste im Packtisch scannen User helfen Usern - Fragen zu JTL-Wawi 3
Neu Artikel auf Bestellung nicht zusammenführen Arbeitsabläufe in JTL-Wawi 2
Neu Hersteller ändert SKU von Kind Artikel (Varianten) | Vater beleibt gleich - wie verfahren bei "gemischtem" Lager alt/neu User helfen Usern - Fragen zu JTL-Wawi 3
Neu XML Export Artikel Stammdaten für Mercateo Schnittstellen Import / Export 1
Kaufland Artikel filtern kaufland.de - Anbindung (SCX) 11
Neu Artikel -> Lieferanten -> Zum eigenen Lager hinzufügen User helfen Usern - Fragen zu JTL-Wawi 4
Kategoriebaum: Artikel wird in allen Kategorien angezeigt JTL-Wawi 1.9 1
Artikel in der Artikelliste grün hinterlegt bzw. nicht farblich hinterlegt JTL-Wawi 1.9 5
Neu WMS Mobile falscher Artikel beim Picken JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Artikel mit unterschiedlichen Währungen JTL-Wawi 1.9 1
Listen Ansicht für Artikel deaktivieren Einrichtung JTL-Shop5 2
Gelöst Artikel an der Kasse beim scannen nur über Artikelnummer, nicht über GTIN identifizieren (Gebrauchtware, GTIN mehrfach in der Wawi) Allgemeine Fragen zu JTL-POS 1
Automatischer bestandsabgleich für mehrere Artikel JTL-Wawi 1.8 1
Neu Spam über Frage zum Artikel User helfen Usern - Fragen zu JTL-Wawi 10
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 4
Neu Artikel zählen wenn Bedingung erfüllt Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0

Ähnliche Themen