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

गतिशील पिवट एसक्यूएल क्वेरी में शून्य मानों को बदलना

आपको चयन कथन के लिए एक और कॉलम सूची तैयार करनी होगी, और अलग-अलग महीनों को ISNULL के साथ लपेटना होगा, जैसे:

DECLARE @cols AS NVARCHAR(MAX),
        @selectCols AS NVARCHAR(MAX),
        @query AS NVARCHAR(MAX) 

SELECT  @selectCols = STUFF
(
(
SELECT distinct ', ISNULL(' + QUOTENAME([MONTH]) + ', 0) AS ' + QUOTENAME([MONTH])
FROM   [HEADCOUNT]
WHERE  [MONTH] BETWEEN '01-012018' AND '12-01-2018'
ORDER BY ',' + QUOTENAME([MONTH])
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,1,''
)



SELECT  @cols = STUFF
(
(
SELECT distinct ',' + QUOTENAME([MONTH])
FROM   [HEADCOUNT]
WHERE  [MONTH] BETWEEN '01-012018' AND '12-01-2018'
ORDER BY ',' + QUOTENAME([MONTH])
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,1,''
)
SET     @query = 'SELECT [FTE/RATE CARD],' + @selectCols + ' FROM
(
SELECT  [MONTH],[FTE/RATE CARD],[HC]
FROM    [HEADCOUNT]
WHERE   [CC-LOC] IN ([CC-LOC]) 

) x pivot (Sum ([HC]) for [MONTH] in (' + @cols + '))p' execute(@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 सर्वर में कोई डेटाबेस मौजूद है या नहीं?

  2. प्रमुख गद्देदार शून्य के साथ SQL पहचान

  3. SQL सर्वर:5 कॉलम से अधिक गतिशील पिवट

  4. SQL में सिरिलिक वर्ण का चयन करें

  5. SSIS पैकेज अस्थायी तालिका का मेटाडेटा प्राप्त नहीं करना चाहता