2015-04-10 6 views
0

У меня есть исходные данные выглядятSQL - сводные таблицы с 3 поперечными закладками

Class Cert Name Benefit Coverage 
------------------------------- 
1  1001 ABC EHC  Family 
1  1001 ABC DEN  Family 
2  1002 XYZ EHC  Single 
2  1002 XYZ DEN  Single 
3  1003 LMN EHC  Couple 
3  1003 LMN DEN  Couple. 

Я хочу, чтобы конечный результат, чтобы выглядеть

**Class**       **Benefit** 
     EHC-Single EHC-Couple EHC-Family DEN-Single DEN-Couple DEN-Family 
1         1         1 
2    1         1 
3      1         1 

значения ниже столбцов количества сертификатов.

ответ

0

да, вы можете сделать это, как показано ниже. См. В SQL Fiddle

;WITH CTE 
AS (SELECT COUNT(*)     Counts, 
      Class, 
      Benefit + '-' + Coverage AS [Benefits] 
    FROM ##MyTemp 
    GROUP BY Class, 
       Benefit, 
       Coverage) 
SELECT Class, 
     [EHC-Single], 
     [EHC-Couple], 
     [EHC-Family], 
     [DEN-Single], 
     [DEN-Couple], 
     [DEN-Family] 
FROM CTE 
     PIVOT(MAX(Counts) 
      FOR [Benefits] IN ([EHC-Single], 
           [EHC-Couple], 
           [EHC-Family], 
           [DEN-Single], 
           [DEN-Couple], 
           [DEN-Family])) AS TempList; 
+0

Отлично, Это именно то, что я хочу, вы гений. THANKS SO MUCH – user3525244

+0

@ user3525244 действительно проявляйте свою признательность, голосуя за мой голос, если это вам помогло. – sudhAnsu63

Смежные вопросы