sql >> データベース >  >> RDS >> Sqlserver

T-SQLのピボットデータ

    SQL Server 2005(またはそれ以降)を使用している場合、コードは次のとおりです。

    DECLARE @cols VARCHAR(1000)
    DECLARE @sqlquery VARCHAR(2000)
    
    SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Month])
                            FROM YourTable FOR XML PATH('') ), 1, 1, '') 
    
    
    SET @sqlquery = 'SELECT * FROM
          (SELECT Person, Month, Paid
           FROM YourTable ) base
           PIVOT (Sum(Paid) FOR [Person]
           IN (' + @cols + ')) AS finalpivot'
    
    EXECUTE ( @sqlquery )
    

    これは、ステータスがいくつあっても機能します。 PIVOTを使用してクエリを動的にアセンブルします 。動的列を使用してPIVOTを実行できる唯一の方法は、クエリを動的にアセンブルすることです。これは、SQLServerで実行できます。

    その他の例:

    • SQL Server PIVOTはおそらく?
    • SQL Serverを使用して単一のテーブルに結合してサマリーを作成するにはどうすればよいですか?


    1. MySQL I/O使用率が高いかどうかを確認する方法

    2. 拡張イベントによるイベント損失の理解

    3. java.sql.SQLException:ORA-03115:サポートされていないネットワークデータ型または表現

    4. 新しいAzureSQLデータベースの標準階層サイズ