Neu SAMMLUNG an Artikel eigene Übersichten

tecaustria

Gut bekanntes Mitglied
22. Dezember 2014
112
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
112
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 smani185

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.574
297
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: smani185 und werk26

Karobube

Sehr aktives Mitglied
23. September 2020
153
79
on the road
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
47
5
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
31
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
47
5
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 :)
 
Ähnliche Themen
Titel Forum Antworten Datum
Wareneingang bei Gratis Artikel richtig anpassen JTL-Wawi 1.6 0
Neu REST-API: SalesOrder/Item für Artikel mit Konfigurator-Komponenten JTL-POS - Fehler und Bugs 0
Neu Hilfe, unerklärliches Phänomen ( alle Artikel für einen Verkaufskanal plötzlich deaktiviert ) JTL-Wawi - Fehler und Bugs 0
Neu Datenbank Performance Indizes neu organisieren - werden da die internen Schlüssel je Artikel oder Kategorie neu generiert? User helfen Usern - Fragen zu JTL-Wawi 5
Verfügbare Artikel im JTL-Shop begrenzen Einrichtung JTL-Shop5 0
Preis bei Artikel mit Stücklisten aktualisieren bzw. wenn Sonderpreise von Komponenten JTL-Wawi 1.7 0
Neu Artikel wird im Shop 5 mit MHD ausgegeben obwohl Artikel ohne MHD Betrieb / Pflege von JTL-Shop 0
Neu Artikel Sortierung nach Bestseller als Standard einstellen Technische Fragen zu Plugins und Templates 4
Artikel duplizieren Spaltenbreit zu gering JTL-Wawi 1.6 10
Neu WMS Versand Seriennummer Artikel muss doppelt gescannt werden JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 1
In Diskussion Artikel > Ausgabeweg in Attributen per Workflow setzen JTL-Workflows - Ideen, Lob und Kritik 6
Neu Cross Selling Gruppe - Kunden kauften auch - Artikel ausblenden Allgemeine Fragen zu JTL-Shop 0
In Bearbeitung Feature Wunsch: Gleicher Artikel in mehreren Kategorien, Gastronomie Wochenplan JTL-POS - Ideen, Lob und Kritik 1
Neu Eigene Übersicht in Artikel, ausgabe als Link? Eigene Übersichten in der JTL-Wawi 5
Artikel aus aktueller Kategorie entfernen JTL-Wawi 1.7 3
In Bearbeitung JTL-POS Aufträge aus Wawi übernehmen und Artikel hinzufügen Allgemeine Fragen zu JTL-POS 7
Neu Filter Preisspanne / Besondere Artikel Englisch Betrieb / Pflege von JTL-Shop 0
Neu Auf der Pickliste werden auch Artikel angezeigt die eine Stückliste sind. Eigene Übersichten in der JTL-Wawi 5
In Bearbeitung JTL-POS importiert keine Artikel mehr aus der WAWI Allgemeine Fragen zu JTL-POS 1
Neu Artikel inaktiv ( 0 Bestand) auf Amazon, obwohl Stücklistenartikel mit Bestand User helfen Usern - Fragen zu JTL-Wawi 5
Neu Inaktive Artikel = Tote URL - Automatisch auf Kategorie umleiten? JTL-Shop - Ideen, Lob und Kritik 1
Artikel aus Wawi Einrichtung JTL-Shop5 2
Neu Anzahl der Artikel auf Startseite stimmt nicht mit Einstellungen überein. Allgemeine Fragen zu JTL-Shop 2
Neu Löschen von einer Kategorie mit 350000 Artikel JTL-Wawi - Fehler und Bugs 5
Neu "Eigenes Angebot aufschalten" bei mehreren markierten Artikeln ignoriert den ersten markierten Artikel JTL-Wawi - Fehler und Bugs 3
Beantwortet Artikel ins FFN einstellen aktualisieren/Logikfrage JTL-Workflows - Ideen, Lob und Kritik 1
Neu [Shop 4] Artikel Tags wären nach Upgrade auf 5er Shop alle weg - wie damit umgehen? Upgrade JTL-Shop4 auf JTL-Shop5 1
Artikel auf Kaufland.cz und sk listen... wie geht das? kaufland.de - Anbindung (SCX) 2
Neu Filterregel für Ameise, um Artikel mit best. Ausgabeweg/Kanal zu finden? User helfen Usern - Fragen zu JTL-Wawi 14
In Diskussion Wawi 1.7.10 Workflow - Artikel erstellt - Wert setzen - Attribut für Plattform X = Der Wert landet immer in der Plattform JTL-Wawi JTL-Workflows - Fehler und Bugs 0
Neu Artikel per CSV importieren Einrichtung / Updates von JTL-POS 0
Neu Rätselhafter Rabatt bei einem Artikel / Kundengruppe User helfen Usern - Fragen zu JTL-Wawi 2
Neu Artikel dublizieren - Fenster immer oben links - warum? JTL-Wawi - Fehler und Bugs 0
Artikel Bilder werden im Shop nicht angezeigt. Sortierung funktioniert nicht JTL-Wawi 1.7 2
Artikel werden mit identischen Angaben angezeigt JTL-Wawi 1.7 7
Neu Konfigurationsartikel sollen im Shop nur im Konfigurator sichtbar sein und nicht als einzelne Artikel JTL-Wawi 1.7 3
Neu Keine Hinweise fehlender Artikel mehr bei Packtisch+ JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 0
Artikel für Bausätze mit Stückliste des Bausatz auf Angebot/Rechnung JTL-Wawi 1.7 1
Beantwortet Hersteller Angabe an Artikel wird mit jtl connector nicht an Wordpress woocommerce übertragen Onlineshop-Anbindung 1
Neu Artikel aus JTL Shop 5 in Wawi importieren Onlineshop-Anbindung 3
Neu Artikel -> Anmerkungen JTL-Wawi - Ideen, Lob und Kritik 0
Wawi geupdatet und ein Bug jagt den Nächsten ... Artikelfenster nicht vorn, Doppelklick auf Artikel öffnet diesen nicht JTL-Wawi 1.7 5
Issue angelegt [WAWI-69462] Artikel auf Einkaufsliste, wenn einziger Bestand auf gesperrtem Lagerplatz liegt JTL-Workflows - Ideen, Lob und Kritik 2
In Diskussion Bei Artikelsuche, werden keine Artikel gefunden JTL-POS - Fehler und Bugs 3
Steuerklasse "Keine Steuer (Privatverkauf)" läßt einen Artikel wie von Geisterhand verschwinden JTL-Wawi 1.7 2
Neu Top-Artikel und Sonderangebote erscheinen nicht auf der Startseite Allgemeine Fragen zu JTL-Shop 2
Neu Optionen (Variationen) Bestellimport der Artikel details/werte WooCommerce-Connector 0
Neu JTL-Wawi 1.7.10.0 - Wawi-App 1.7.9 - Angebot lässt kein Artikel hinzufügen trotz Berechtigung JTL-Wawi - Fehler und Bugs 0
Umlagerung Dialog findet einzelne Artikel nicht? WAWI 1.6.44.0 JTL-Wawi 1.6 4
In Diskussion Workflow-Modifikation: Zusammenfassung aller fehlenden Angaben für alle Artikel in einer E-Mail JTL-Workflows - Ideen, Lob und Kritik 1

Ähnliche Themen