Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

टी-एसक्यूएल पिवोट/अनपिवोट (स्थानांतरित करें) कॉलम हेडर डेटा पंक्तियों के रूप में आवश्यक हैं

कुछ भ्रमित करने वाली चीजें हैं जो आप कर रहे हैं।

सबसे पहले, आम तौर पर आप एकाधिक कॉलम को अनपिवट करेंगे। अभी, आप एक कॉलम को अनपिवट कर रहे हैं और ऐसा लगता है कि आप केवल कॉलम का नाम बदलने के लिए ऐसा कर रहे हैं?

दूसरा, आप डेटा को दो बार एकत्र कर रहे हैं, PIVOT को SUM() का उपयोग करके एकत्रीकरण को संभालने में सक्षम होना चाहिए ।

तीसरा, यह बिल्कुल स्पष्ट नहीं है कि आपको पंक्ति के रूप में कॉलम हेडर की आवश्यकता क्यों है, आप कॉलम हेडर को क्या कहना चाहेंगे?

आपके नमूना डेटा के आधार पर आपको केवल PIVOT फ़ंक्शन लागू करने में सक्षम होना चाहिए:

select 'TotalRecords' TotalRecords, 
  [2012],
  [2013],
  [All]
from tbleirstatisticsoverviewsummary
pivot
(
  sum(totalrecords)
  for FiscalYear IN ([2012],[2013],[ALL])
) p;

देखें SQL Fiddle with Demo . फिर यदि आप कॉलम हेडर वाली एक पंक्ति चाहते हैं, तो आप UNION ALL का उपयोग कर सकते हैं:

select 'colname' col1, 
  2012 col2, 
  2013 col3, 
  'All' col4
union all
select 'TotalRecords' TotalRecords, 
  [2012],
  [2013],
  [All] = cast([all] as varchar(10))
from tbleirstatisticsoverviewsummary
pivot
(
  sum(totalrecords)
  for FiscalYear IN ([2012],[2013],[ALL])
) p;

देखें SQL Fiddle with Demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2008 में .csv फ़ाइल में क्वेरी परिणाम निर्यात करें

  2. SQL सर्वर में BCP कमांड का उपयोग करके xml डेटा निर्यात करें

  3. मैं ExecuteNonQuery के साथ VARCHAR (MAX) कॉलम में 8000 से अधिक वर्ण कैसे सम्मिलित कर सकता हूं?

  4. SQL सर्वर 2008 में CSV आयात

  5. SQL सर्वर 2008 मशीन सेटिंग्स के अनुसार DATETIMEOFFSET प्राप्त करें