Sto provando a utilizzare il codice riportato di seguito per portare un conteggio di tutte le linee negli ultimi 12 mesi per il periodo e impianto, vedere l'output di seguito. Quindi, ad esempio con l'output di seguito, anziché la colonna di 12 mesi che contiene il totale per il periodo, voglio il conteggio utilizzando un periodo compreso tra 201001-201101 (Si noti che il mio esempio era solo per il set di dati di seguito e i 12 mesi colonna deve adattarsi per ciascun periodo).Effettuare il conteggio dei 12 mesi precedenti durante il raggruppamento per periodo
Period Plant Stock Special MonthTotal 12Months
201101 0EA0 27 0 27 27
201101 0EB0 35 2 37 37
Il problema che sto avendo è che invece di portare attraverso l'ultimo conteggio di 12 mesi, il mio codice è semplicemente portando attraverso il conteggio per il periodo in corso. Per favore qualcuno può aiutare?
select
convert(varchar(6),dateadd(mm,0,P.Dt),112) as Period,P.Plant,
Sum(Case When Left(Upper(Material),2) = 'ZZ' then 1 else 0 end) as Stock,
Sum(Case When Left(Upper(Material),2) <> 'ZZ' then 1 else 0 end) as Special
,Count(*) as MonthTotal,Sum(Case When
convert(varchar(6),dateadd(mm,0,P.Dt),112)
Between
convert(varchar(6),dateadd(mm,-12,P.Dt),112)
And
convert(varchar(6),dateadd(mm,0,P.Dt),112) Then 1 else 0 End
)as [12Months]
from
iesaonline.dbo.DS_POs as P where
Plant IN(
Select Client From METRICS.DBO.CO_001_Plants_090_Final
where CustGrp = 'Hovis'
)
Group by
P.Plant,convert(varchar(6),dateadd(mm,0,P.Dt),112)
order by
convert(varchar(6),dateadd(mm,0,Dt),112),Plant
Si prega di creare un sql fiddle (sqlfiddle.com) contenente i campi da DS_POs e CO_001_Plants_090_Final che consente di ur sopra la query da eseguire. –
Abbiamo bisogno di ulteriori informazioni, come lo schema del database e alcuni dati di esempio. Segui il suggerimento di W.Prins e crea uno sqlfiddle contenente dati inventati e un esempio della tua query corrente che non sta facendo quello che vuoi. –