Dynamic Pivot Sql для матричного отчета - PullRequest
0 голосов
/ 25 сентября 2018

Это запрос статического сводного SQL.

WITH 
   T 
AS 
(
   SELECT 
      DEPTNO 
   FROM 
      EMP
)
SELECT 
   * 
FROM 
   T
PIVOT 
(
   COUNT(*) 
   FOR 
      (DEPTNO) 
   IN 
      (10,20,30,40)

Но я хочу выполнить динамический запрос SQL для матричного отчета.где название заголовка будет именем отдела, а не идентификатором отдела.Так что я могу сделать сейчас?

enter image description here

1 Ответ

0 голосов
/ 25 сентября 2018

Я думаю, что это должно сработать для вас. Вам нужно дать псевдоним как то, что у вас на уме для первого выбора:

  SELECT 
      'empname' as empname ,[0] as yourdepartname1, [1] as yourdepartname2, [2] as yourdepartname2, [3]yourdepartname4, [4] as yourdepartname5
   FROM 
      (  
SELECT 
   empname,DEPTNO 
FROM 
   EMP e
inner join department d on d.DEPTNO on e.deptno
group by empname) p
    PIVOT 
    (
       COUNT(*) 
       FOR 
          (empname) 
       IN 
          ([0], [1], [2], [3], [4] ))
    AS PivotTable
...