sql >> Database >  >> RDS >> Sqlserver

SQL Server PIVOT misschien?

Aangezien u SQL Server 2005 gebruikt, is hier de code:

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Name1])
                        FROM myTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Name2, Name1, Value
       FROM myTable ) base
       PIVOT (Sum(Value) FOR [Name1]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )

Dit werkt ongeacht hoeveel verschillende statussen je hebt. Het stelt dynamisch een query samen met PIVOT . De enige manier waarop u PIVOT met dynamische kolommen kunt doen, is door de query dynamisch samen te stellen, wat kan worden gedaan in SQL Server.

Andere voorbeelden:

  • Gegevens draaien in T-SQL
  • Hoe maak ik een samenvatting door samen te voegen met een enkele tabel met SQL Server?
  • https://stackoverflow.com/q/8248059/570191


  1. 5 manieren om te controleren of een tabel bestaat in PostgreSQL

  2. Wijzig beveiligingsgroep op AWS RDS-database-instantie

  3. Hoe het MySQL my.cnf-bestand te bewerken

  4. Hoe kan ik een .NET-toepassing implementeren die ODAC gebruikt zonder de hele component voor de gebruiker te installeren?