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

अलग कॉलम में प्रत्येक DISTINCT पंक्ति के लिए कई पंक्तियों से तीन तालिकाओं और कुल डेटा में शामिल हों

यह मानते हुए कि आप अधिक कुशल क्वेरी बनाने के लिए डेटा संरचनाओं को बदलने में असमर्थ हैं, यह काम करेगा:

--Populate sample data
SELECT 1 as key1,       2  as key2 INTO #tbl1
UNION ALL SELECT 1,       5 
UNION ALL SELECT 1,       6 
UNION ALL SELECT 1,       4 
UNION ALL SELECT 1,       8 

SELECT 1  as key1,     'Desc short' as shortkeydesc INTO #tbl2

SELECT 1   as key1,    'Desc a'  as [description] INTO #tbl3
UNION ALL SELECT 1,       'Desc c' 
UNION ALL SELECT 1,       'Desc aa' 
UNION ALL SELECT 1,       'Desc tt' 

--Combine data into semi-colon separated lists
SELECT 
key1
,STUFF(
    (
    SELECT
      ';' + CAST(t2.key2 AS VARCHAR(10))
    FROM #tbl1 t2
    WHERE t2.key1 = tbl1.key1
    FOR XML PATH('')
    ), 1, 1, ''
  )
,STUFF(
    (
    SELECT
      ';' + tbl2.shortkeydesc
    FROM #tbl2 tbl2
    WHERE tbl2.key1 = tbl1.key1
    FOR XML PATH('')
    ), 1, 1, ''
  )
,STUFF(
    (
    SELECT
      ';' + tbl3.[description]
    FROM #tbl3 tbl3
    WHERE tbl3.key1 = tbl1.key1
    FOR XML PATH('')
    ), 1, 1, ''
  )
FROM #tbl1 tbl1
GROUP BY tbl1.key1


  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 सर्वर अनुक्रमणिका फ़्रेग्मेंटेशन जानकारी को सक्रिय रूप से कैसे एकत्रित करें

  2. नए SQL सर्वर कार्डिनैलिटी अनुमानक पर पहली नज़र

  3. टी-एसक्यूएल कंपाउंड स्टेटमेंट डेडलॉक का कारण बनता है, कोई विचार क्यों?

  4. SQL सर्वर 2005:पूर्ण टेक्स्ट कैटलॉग के साथ sp_attach_db का उपयोग करके डेटाबेस संलग्न करें

  5. मैं एक पंक्ति को एकाधिक पंक्ति परिणाम सेट में कैसे विस्तारित कर सकता हूं?