Sqlserver
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намерите най-бавните заявки

  2. Как мога да конвертирам геометрични данни в географски данни в MS SQL Server 2008?

  3. Не може да се използва псевдоним в клаузата WHERE, но може в ORDER BY

  4. SQL Server 2008 - Задейства ли се със същите разрешения като влизане/потребител?

  5. Ключовата дума не се поддържа:"сървър"