अवधि अवधि और संयंत्र के लिए पिछले 12 महीनों की अवधि में सभी लाइनों की गणना करने के लिए मैं नीचे दिए गए कोड का उपयोग करने की कोशिश कर रहा हूं, कृपया नीचे दिए गए आउटपुट को देखें। तो उदाहरण के लिए, वर्तमान में अवधि के लिए कुल 12 महीने कॉलम के बजाय, नीचे दिए गए आउटपुट के साथ, मैं 201001-201101 के बीच की अवधि का उपयोग करके गिनती चाहता हूं (कृपया ध्यान दें, मेरा उदाहरण केवल नीचे डेटासेट और 12 महीने के लिए था कॉलम को प्रत्येक अवधि के लिए अनुकूलित करने की आवश्यकता है)।पिछले 12 महीनों के दौरान गिनती करते समय
Period Plant Stock Special MonthTotal 12Months
201101 0EA0 27 0 27 27
201101 0EB0 35 2 37 37
मुद्दा मैं आ रही है कि नहीं बल्कि पिछले 12 महीने के गिनती के माध्यम से लाने की तुलना में, मेरे कोड केवल गिनती के माध्यम से वर्तमान अवधि के लिए ला रहा है है। कृपया कोई सहायता कर सकता है?
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
कृपया एक एसक्यूएल फिडल (sqlfiddle.com) बनाएं जिसमें DS_POs और CO_001_Plants_090_Final से फ़ील्ड शामिल हैं जो आपको अनुमति देता है चलाने के लिए उपर्युक्त क्वेरी। –
हमें आपकी जानकारी स्कीमा और कुछ नमूना डेटा जैसे अधिक जानकारी चाहिए। कृपया डब्लू। प्रिंस के सुझाव का पालन करें और एक सक्लिफल्ड बनाएं जिसमें समेकित डेटा है और आपकी वर्तमान क्वेरी का एक उदाहरण है जो आप जो चाहते हैं वह नहीं कर रहा है। –