【问题标题】:SQL - Pivot tables with 3 cross tabsSQL - 具有 3 个交叉表的数据透视表
【发布时间】:2015-04-10 15:50:52
【问题描述】:

我的原始数据看起来像

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

列下方的值是证书的计数。

【问题讨论】:

    标签: sql-server-2008-r2 pivot-table crosstab


    【解决方案1】:

    是的,你可以像下面那样做。见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; 
    

    【讨论】:

    • 太好了,这正是我想要的,你真是个天才。非常感谢
    • @user3525244 如果对您有帮助,请点赞我的回答,以表达您的感激之情。
    猜你喜欢
    • 2015-07-13
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    相关资源
    最近更新 更多