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

動的テーブルを構築するための T SQL クエリ形式

    あなたがやりたいことはピボットと呼ばれます

    このコードを使用してみてください

    SELECT employeeid
          ,case when [2018-10-1] > 0 then '1' else '' end as [2018-10-1]
          ,case when [2018-10-2] > 0 then '1' else '' end as [2018-10-2]
          ,case when [2018-10-3] > 0 then '1' else '' end as [2018-10-3]
    FROM(
    SELECT employeeid
         , TranDate
         , 1 as num 
    FROM History 
    WHERE (CAST(trandate as DATE) = '2018-10-1' 
           or CAST(trandate as DATE) = '2018-10-2' 
           or CAST(trandate as DATE) = '2018-10-3' ) 
    )
    PIVOT(
    COUNT(num)
    FOR TranDate IN ([2018-10-1],[2018-10-2],[2018-10-3])
    ) as pvt
      

    PIVOT、UNPIVOT SQL また、transdate フィールドにもっと動的なものが必要な場合は、 を確認できます動的ピボット



    1. DISTINCT値の発生をカウントします

    2. このeavクエリを作成して水平方向の結果を作成する方法

    3. MySQLの単一の列で重複するカンマ区切り値を削除する方法

    4. 特定のプログラムからSQLServerへのアクセスを拒否することは可能ですか?