पिवट टेबल देखें;
देखें http://msdn.microsoft.com/en-us/library/ ms177410.aspx
StatusTypeNames की सीमित संख्या के लिए एक साधारण क्वेरी कुछ इस तरह होगी;
SELECT * FROM
(SELECT MonthName, StatusTypeName as attributeCol, StatusCount FROM @ResultsTable) rt
PIVOT ( MAX(StatusCount) FOR attributeCol in ([ToBeScheduled],[Complete])) as pvt
ORDER BY MonthName
मैक्स के उपयोग पर ध्यान दें। यदि संभावना है कि आपके पास समान माहनाम और स्थिति टाइपनाम संयोजन के साथ कई पंक्तियाँ होंगी, तो आप SUM का उपयोग करना चाह सकते हैं।
मधिविनन के सुझाव के अनुसार गतिशील स्तंभों का उपयोग करने के लिए, आप यह उदाहरण। नीचे तक स्क्रॉल करें।
मैंने इसे आपके उदाहरण के साथ काम करने की कोशिश की, लेकिन क्योंकि मेरे पास कुछ समस्याएं थीं, शायद इस तथ्य के कारण कि मेरे पास टेबल नहीं थे। हालांकि, आप जो चाहते हैं वह निम्न जैसा है।
DECLARE @listCol VARCHAR(2000)
DECLARE @query VARCHAR(4000)
SELECT @listCol = SELECT STUFF (( SELECT DISTINCT '],[' +
StatusTypeName FROM @ResultsTable ORDER BY '],[' +
StatusTypeName FOR XML PATH ('')), 1, 2, '') + ']'
SET @query =
'SELECT * FROM
(SELECT MonthNameCol, StatusTypeName as attributeCol, StatusCount FROM @ResultsTable) rt
PIVOT ( MAX(StatusCount) FOR attributeCol in ('[email protected]+')) AS pvt ORDER BY MonthNameCol'
EXECUTE (@query)
यह बिल्कुल सही नहीं है, लेकिन यह एक शुरुआती बिंदु है।
शुभकामनाएँ।