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

एकाधिक एक्स-अक्ष स्तंभों के साथ SQL सर्वर PIVOT

ठीक है, जैसा कि आपने कहा था, आपको गतिशील SQL की आवश्यकता होगी, इसलिए पहले इस लिंक पर जाएं। . एक बार जब आप इसे पढ़ लें, तो निम्न प्रयास करें:

टिप्पणी के बाद अद्यतन कोड:

DECLARE @cols AS NVARCHAR(MAX), @cols2 AS NVARCHAR(MAX), @query AS NVARCHAR(MAX);

WITH CTE AS
(
    SELECT *, CAST([Year] AS NVARCHAR(4))+RIGHT('00'+CAST([Month] AS NVARCHAR(2)),2) YearMonth
    FROM YourTable
)

SELECT @cols = STUFF((  SELECT DISTINCT ',' + QUOTENAME(YearMonth) 
                        FROM CTE 
                        FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,1,''),
       @cols2 = STUFF(( SELECT DISTINCT ',ISNULL(' + QUOTENAME(YearMonth) + ',0) AS ' + QUOTENAME(YearMonth)
                        FROM CTE 
                        FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'')


SET @query = '
SELECT Payroll, Forname, Surname, ' + @cols2 + '
FROM (  SELECT  Payroll, Forname, Surname, 
                CAST([Year] AS NVARCHAR(4))+RIGHT(''00''+CAST([Month] AS NVARCHAR(2)),2) YearMonth,
                Amount
        FROM YourTable ) T
PIVOT(SUM(Amount) FOR YearMonth IN ('[email protected]+')) PT'

EXEC(@Query)


  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 सर्वर 2014 मानक संस्करण के लिए सामान्य ज्ञान लाइसेंसिंग परिवर्तन

  2. SQL सर्वर:केवल MAX (DATE) वाली पंक्तियों का चयन करें

  3. आवधिक अमान्यकास्ट अपवाद और सर्वर लिंक के साथ लेनदेन को फिर से शुरू करने में विफल रहा

  4. SQL सर्वर त्रुटि 4104:बहु-भाग पहचानकर्ता बाध्य नहीं किया जा सका।

  5. Red Hat पर sqlcmd और bcp कैसे स्थापित करें?