Sql server 2008 r2 SQL-具有3个交叉选项卡的透视表

Sql server 2008 r2 SQL-具有3个交叉选项卡的透视表,sql-server-2008-r2,pivot-table,crosstab,Sql Server 2008 R2,Pivot Table,Crosstab,我有原始数据看起来像 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

我有原始数据看起来像

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

列下面的值是证书计数。

是的,您可以按照下面的方法进行操作。看中


太好了,这正是我想要的,你是个天才。非常感谢MUCH@user3525244如果我的答案对你有帮助的话,一定要投赞成票来表达你的感激之情。
;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;