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

एसक्यूएल सर्वर 2008 क्रॉस टैब क्वेरी

आपको इसे 'पिवट' ऑपरेटर के साथ करने में सक्षम होना चाहिए। कुछ इस तरह (हालांकि मुझे यकीन है कि मैंने कुछ वर्तनी या वाक्य रचना विवरण छुपाया है...):

select catTitle, [1] as site1, [2] as site2, [3] as site3, [4] as site4, [5] as site5
  from (select category.catTitle, equipment.quantity, site.title
          from equipment
            inner join site
              on (equipment.siteid = site.siteid)
            inner join category
              on (category.catid = equipment.catid)
        ) 
  pivot
  (
  sum (quantity)
    for equipment.siteid in ( [1], [2], [3], [4], [5] )
  ) as pvt
order by pvt.category;

इसके साथ समस्या यह है कि आपको साइट आईडी के सटीक सेट को जानना होगा जिसे आप क्वेरी में शामिल करना चाहते हैं। यदि आपको अधिक गतिशील क्रॉसस्टैब की आवश्यकता है (जैसे आप एक्सेल में प्राप्त कर सकते हैं), तो आपको क्वेरी टेक्स्ट को स्ट्रिंग के रूप में जेनरेट करना होगा और इसे चलाने के लिए sp_executesql का उपयोग करना होगा। जेनरेट किए गए टेक्स्ट में, आप "[1], [2], [3], [4], [5]..." और "[1] साइट1 के रूप में, [2] साइट2 के रूप में कई शामिल करते हैं। ।" आपकी ज़रूरत की चीज़ें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे ठीक करें "INSERT कथन के लिए चयन सूची में सम्मिलित सूची से कम आइटम हैं"

  2. मामला जब खंड द्वारा आदेश के लिए बयान

  3. आपका SQL सर्वर कितना स्वस्थ है? सक्रिय डेटाबेस निगरानी महत्वपूर्ण है

  4. अपने SQL सर्वर क्लस्टर को सेट करने के लिए शीर्ष 9 युक्तियाँ

  5. SqlDataSourceEnumerator.Instance.GetDataSources() स्थानीय SQL सर्वर 2008 आवृत्ति का पता नहीं लगाता है