Verschiedene Perioden in einer Abfrage im Vergleich

Mehr
8 Jahre 1 Monat her - 8 Jahre 1 Monat her #1140 von Anonymous
Kann man verschiedene Perioden in einer Abfrage im Vergleich zueinander auswerten?

die Filialgruppe.

CREATE Procedure UserQueryUmsatzVergleich @FG smallint, @Tag varchar(8) as
SELECT convert(varchar(5),FGruppe2Filialen.Filialnummer) as Filiale, UserHelpTagJahr.UmsatzTagJahr, UserHelpTagVorJahr.UmsatzTagVorjahr,
case when UserHelpTagVorJahr.UmsatzTagVorjahr <> 0 then (UserHelpTagJahr.UmsatzTagJahr/UserHelpTagVorJahr.UmsatzTagVorjahr)*100 else 100 end as ‘AbeichungTag%‘,
UserHelpMonatJahr.UmsatzMonatJahr, UserHelpMonatVorjahr.UmsatzMonatVorjahr,
case when UserHelpMonatVorJahr.UmsatzMonatVorjahr <> 0 then (UserHelpMonatJahr.UmsatzMonatJahr/UserHelpMonatVorJahr.UmsatzMonatVorjahr)*100 else 100 end as ‘AbweichungMonat%‘,
UserHelpJahr.UmsatzJahr, UserHelpVorJahr.UmsatzVorJahr,
case when UserHelpVorJahr.UmsatzVorjahr <> 0 then (UserHelpJahr.UmsatzJahr/UserHelpVorJahr.UmsatzVorjahr)*100 else 100 end as ‘AbweichungJahr%‘
FROM (SELECT FGruppe2Filialen.Filialnummer, HGPeriodenUmsatz.Periode, SUM(HGPeriodenUmsatz.VerkaufBetrag) AS UmsatzTagVorjahr
FROM HGPeriodenUmsatz INNER JOIN FGruppe2Filialen ON HGPeriodenUmsatz.Filialnummer = FGruppe2Filialen.Filialnummer
GROUP BY FGruppe2Filialen.Filialnummer, FGruppe2Filialen.GruppenID, HGPeriodenUmsatz.Periode
HAVING (FGruppe2Filialen.GruppenID = @FG) AND (HGPeriodenUmsatz.Periode = ‘T‘+convert(varchar(8),dateadd(year,-1,@Tag),112)))
as UserHelpTagVorJahr RIGHT OUTER JOIN
FGruppe2Filialen ON UserHelpTagVorJahr.Filialnummer = FGruppe2Filialen.Filialnummer LEFT OUTER JOIN
(SELECT FGruppe2Filialen.Filialnummer, HGPeriodenUmsatz.Periode, SUM(HGPeriodenUmsatz.VerkaufBetrag) AS UmsatzTagJahr
FROM HGPeriodenUmsatz INNER JOIN
FGruppe2Filialen ON HGPeriodenUmsatz.Filialnummer = FGruppe2Filialen.Filialnummer
GROUP BY FGruppe2Filialen.Filialnummer, FGruppe2Filialen.GruppenID, HGPeriodenUmsatz.Periode
HAVING (FGruppe2Filialen.GruppenID = @FG) AND (HGPeriodenUmsatz.Periode = ‘T‘+@Tag))
as UserHelpTagJahr ON FGruppe2Filialen.Filialnummer = UserHelpTagJahr.Filialnummer LEFT OUTER JOIN
(SELECT FGruppe2Filialen.Filialnummer, HGPeriodenUmsatz.Periode, SUM(HGPeriodenUmsatz.VerkaufBetrag) AS UmsatzMonatVorjahr
FROM HGPeriodenUmsatz INNER JOIN
FGruppe2Filialen ON HGPeriodenUmsatz.Filialnummer = FGruppe2Filialen.Filialnummer
GROUP BY FGruppe2Filialen.Filialnummer, FGruppe2Filialen.GruppenID, HGPeriodenUmsatz.Periode
HAVING (FGruppe2Filialen.GruppenID = @FG) AND (HGPeriodenUmsatz.Periode = ‘M‘+left(convert(varchar(8),dateadd(year,-1,@Tag),112),6)))
as UserHelpMonatVorjahr ON FGruppe2Filialen.Filialnummer = UserHelpMonatVorjahr.Filialnummer LEFT OUTER JOIN
(SELECT FGruppe2Filialen.Filialnummer, HGPeriodenUmsatz.Periode, SUM(HGPeriodenUmsatz.VerkaufBetrag) AS UmsatzMonatJahr
FROM HGPeriodenUmsatz INNER JOIN
FGruppe2Filialen ON HGPeriodenUmsatz.Filialnummer = FGruppe2Filialen.Filialnummer
GROUP BY FGruppe2Filialen.Filialnummer, FGruppe2Filialen.GruppenID, HGPeriodenUmsatz.Periode
HAVING (FGruppe2Filialen.GruppenID = @FG) AND (HGPeriodenUmsatz.Periode = ‘M‘+left(@Tag,6)))
as UserHelpMonatJahr ON FGruppe2Filialen.Filialnummer = UserHelpMonatJahr.Filialnummer LEFT OUTER JOIN
(SELECT FGruppe2Filialen.Filialnummer, HGPeriodenUmsatz.Periode, SUM(HGPeriodenUmsatz.VerkaufBetrag) AS UmsatzVorJahr
FROM HGPeriodenUmsatz INNER JOIN
FGruppe2Filialen ON HGPeriodenUmsatz.Filialnummer = FGruppe2Filialen.Filialnummer
GROUP BY FGruppe2Filialen.Filialnummer, FGruppe2Filialen.GruppenID, HGPeriodenUmsatz.Periode
HAVING (FGruppe2Filialen.GruppenID = @FG) AND (HGPeriodenUmsatz.Periode = ‘J‘+left(convert(varchar(8),dateadd(year,-1,@Tag),112),4)))
as UserHelpVorJahr ON FGruppe2Filialen.Filialnummer = UserHelpVorJahr.Filialnummer LEFT OUTER JOIN
(SELECT FGruppe2Filialen.Filialnummer, HGPeriodenUmsatz.Periode, SUM(HGPeriodenUmsatz.VerkaufBetrag) AS UmsatzJahr
FROM HGPeriodenUmsatz INNER JOIN
FGruppe2Filialen ON HGPeriodenUmsatz.Filialnummer = FGruppe2Filialen.Filialnummer
GROUP BY FGruppe2Filialen.Filialnummer, FGruppe2Filialen.GruppenID, HGPeriodenUmsatz.Periode
HAVING (FGruppe2Filialen.GruppenID = @FG) AND (HGPeriodenUmsatz.Periode = ‘J‘+left(@Tag,4)))
as UserHelpJahr ON FGruppe2Filialen.Filialnummer = UserHelpJahr.Filialnummer
WHERE (FGruppe2Filialen.GruppenID = @FG)
union
select ‘Summe ‘+right(@Tag,2)+‘.‘+substring(@Tag,5,2)+‘.‘+left(@Tag,4), sum(UmsatzTagJahr), sum(UmsatzTagVorjahr),
case when sum(UmsatzTagVorjahr) <> 0 then (sum(UmsatzTagJahr)/sum(UmsatzTagVorjahr))*100 else 100 end ,
sum(UmsatzMonatJahr), sum(UmsatzMonatVorjahr),
case when sum(UmsatzMonatVorjahr) <> 0 then (sum(UmsatzMonatJahr)/sum(UmsatzMonatVorjahr))*100 else 100 end,
sum(UmsatzJahr), sum(UmsatzVorjahr),
case when sum(UmsatzVorjahr) <> 0 then (sum(UmsatzJahr)/sum(UmsatzVorjahr))*100 else 100 end

from (SELECT FGruppe2Filialen.Filialnummer, UserHelpTagJahr.UmsatzTagJahr, UserHelpTagVorJahr.UmsatzTagVorjahr,
case when UserHelpTagVorJahr.UmsatzTagVorjahr <> 0 then (UserHelpTagJahr.UmsatzTagJahr/UserHelpTagVorJahr.UmsatzTagVorjahr)*100 else 0 end as ‘AbeichungTag%‘,
UserHelpMonatJahr.UmsatzMonatJahr, UserHelpMonatVorjahr.UmsatzMonatVorjahr,
case when UserHelpMonatVorJahr.UmsatzMonatVorjahr <> 0 then (UserHelpMonatJahr.UmsatzMonatJahr/UserHelpMonatVorJahr.UmsatzMonatVorjahr)*100 else 0 end as ‘AbweichungMonat%‘,
UserHelpJahr.UmsatzJahr, UserHelpVorJahr.UmsatzVorJahr,
case when UserHelpVorJahr.UmsatzVorjahr <> 0 then (UserHelpJahr.UmsatzJahr/UserHelpVorJahr.UmsatzVorjahr)*100 else 0 end as ‘AbweichungJahr%‘
FROM (SELECT FGruppe2Filialen.Filialnummer, HGPeriodenUmsatz.Periode, SUM(HGPeriodenUmsatz.VerkaufBetrag) AS UmsatzTagVorjahr
FROM HGPeriodenUmsatz INNER JOIN FGruppe2Filialen ON HGPeriodenUmsatz.Filialnummer = FGruppe2Filialen.Filialnummer
GROUP BY FGruppe2Filialen.Filialnummer, FGruppe2Filialen.GruppenID, HGPeriodenUmsatz.Periode
HAVING (FGruppe2Filialen.GruppenID = @FG) AND (HGPeriodenUmsatz.Periode = ‘T‘+convert(varchar(8),dateadd(year,-1,@Tag),112)))
as UserHelpTagVorJahr RIGHT OUTER JOIN
FGruppe2Filialen ON UserHelpTagVorJahr.Filialnummer = FGruppe2Filialen.Filialnummer LEFT OUTER JOIN
(SELECT FGruppe2Filialen.Filialnummer, HGPeriodenUmsatz.Periode, SUM(HGPeriodenUmsatz.VerkaufBetrag) AS UmsatzTagJahr
FROM HGPeriodenUmsatz INNER JOIN
FGruppe2Filialen ON HGPeriodenUmsatz.Filialnummer = FGruppe2Filialen.Filialnummer
GROUP BY FGruppe2Filialen.Filialnummer, FGruppe2Filialen.GruppenID, HGPeriodenUmsatz.Periode
HAVING (FGruppe2Filialen.GruppenID = @FG) AND (HGPeriodenUmsatz.Periode = ‘T‘+@Tag))
as UserHelpTagJahr ON FGruppe2Filialen.Filialnummer = UserHelpTagJahr.Filialnummer LEFT OUTER JOIN
(SELECT FGruppe2Filialen.Filialnummer, HGPeriodenUmsatz.Periode, SUM(HGPeriodenUmsatz.VerkaufBetrag) AS UmsatzMonatVorjahr
FROM HGPeriodenUmsatz INNER JOIN
FGruppe2Filialen ON HGPeriodenUmsatz.Filialnummer = FGruppe2Filialen.Filialnummer
GROUP BY FGruppe2Filialen.Filialnummer, FGruppe2Filialen.GruppenID, HGPeriodenUmsatz.Periode
HAVING (FGruppe2Filialen.GruppenID = @FG) AND (HGPeriodenUmsatz.Periode = ‘M‘+left(convert(varchar(8),dateadd(year,-1,@Tag),112),6)))
as UserHelpMonatVorjahr ON FGruppe2Filialen.Filialnummer = UserHelpMonatVorjahr.Filialnummer LEFT OUTER JOIN
(SELECT FGruppe2Filialen.Filialnummer, HGPeriodenUmsatz.Periode, SUM(HGPeriodenUmsatz.VerkaufBetrag) AS UmsatzMonatJahr
FROM HGPeriodenUmsatz INNER JOIN
FGruppe2Filialen ON HGPeriodenUmsatz.Filialnummer = FGruppe2Filialen.Filialnummer
GROUP BY FGruppe2Filialen.Filialnummer, FGruppe2Filialen.GruppenID, HGPeriodenUmsatz.Periode
HAVING (FGruppe2Filialen.GruppenID = @FG) AND (HGPeriodenUmsatz.Periode = ‘M‘+left(@Tag,6)))
as UserHelpMonatJahr ON FGruppe2Filialen.Filialnummer = UserHelpMonatJahr.Filialnummer LEFT OUTER JOIN
(SELECT FGruppe2Filialen.Filialnummer, HGPeriodenUmsatz.Periode, SUM(HGPeriodenUmsatz.VerkaufBetrag) AS UmsatzVorJahr
FROM HGPeriodenUmsatz INNER JOIN
FGruppe2Filialen ON HGPeriodenUmsatz.Filialnummer = FGruppe2Filialen.Filialnummer
GROUP BY FGruppe2Filialen.Filialnummer, FGruppe2Filialen.GruppenID, HGPeriodenUmsatz.Periode
HAVING (FGruppe2Filialen.GruppenID = @FG) AND (HGPeriodenUmsatz.Periode = ‘J‘+left(convert(varchar(8),dateadd(year,-1,@Tag),112),4)))
as UserHelpVorJahr ON FGruppe2Filialen.Filialnummer = UserHelpVorJahr.Filialnummer LEFT OUTER JOIN
(SELECT FGruppe2Filialen.Filialnummer, HGPeriodenUmsatz.Periode, SUM(HGPeriodenUmsatz.VerkaufBetrag) AS UmsatzJahr
FROM HGPeriodenUmsatz INNER JOIN
FGruppe2Filialen ON HGPeriodenUmsatz.Filialnummer = FGruppe2Filialen.Filialnummer
GROUP BY FGruppe2Filialen.Filialnummer, FGruppe2Filialen.GruppenID, HGPeriodenUmsatz.Periode
HAVING (FGruppe2Filialen.GruppenID = @FG) AND (HGPeriodenUmsatz.Periode = ‘J‘+left(@Tag,4)))
as UserHelpJahr ON FGruppe2Filialen.Filialnummer = UserHelpJahr.Filialnummer
WHERE (FGruppe2Filialen.GruppenID = @FG)) as UserTotal
GO

Bitte Anmelden oder Registrieren um der Konversation beizutreten.