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

動的列を使用したSQLピボット

    リストには(コメントから)一定数の従業員がいるので、動的である必要はありません。通常のピボットでうまくいくはずです:

    select [Company Name],Emp1,Emp2,Emp3,Emp4  from (
        SELECT
            [Company Name],
            [Employee Name],
            'Emp' + cast(ROW_NUMBER() OVER (PARTITION BY [Comp ID] ORDER BY  [Design ID], [Emp ID] desc) as char(2)) as RowNum
        FROM
        (
            SELECT emp.[Emp ID],
                comp.[Company Name],
                design.[Designation],
                emp.[Design ID],
                emp.[comp id],
                emp.[Employee Name],
                ROW_NUMBER() OVER (PARTITION BY emp.[Comp ID], emp.[Design ID] ORDER BY emp.[Comp ID] desc, emp.[Design ID] desc, emp.[Emp ID] desc) RowNum
            from employee as emp
                join designation as design on design.[Design ID]=emp.[Design ID]
                join company as comp on comp.[Comp ID]=emp.[Comp ID]
        ) a
        WHERE RowNum <=2
    ) as pivotdata
    pivot (max([Employee Name]) for [RowNum] in (Emp1,Emp2,Emp3,Emp4)) as P
      


    1. PHP / MySQLiを使用してMySQL整数列にNULLを取得するにはどうすればよいですか?

    2. MySQL:テーブルを作成できません(errno:150)

    3. テーブル全体を明示的にロックしているときにpostgresが同時に行更新エラーを表示する理由

    4. 複数の列にわたる一意の値の制約