【问题标题】:SQl Server 2005 PivotSQL Server 2005 枢轴
【发布时间】:2010-05-26 18:04:37
【问题描述】:

我想基本上将这 3 个表加入到一个报告视图中:

类表:

ID  Name
1    N1
2    N2
3    N3

标志表:

ID ClassID Flags
1    1      F1
2    1      F2
3    2      F6
4    2      F3
5    3      F2

会话表:

ID  ClassID   Sessions
1      1         S1
2      1         S4
3      2         S3
4      3         S5
5      3         S4

所以我的想要的视图应该是这样的:

ID  Name    Flags    Sessions
1    N1     F1,F2     S1,S4
2    N2     F6,F3       S3
3    N3      F2       S5,S4

【问题讨论】:

    标签: sql sql-server-2005 pivot


    【解决方案1】:
    Select C.Id, C.Name
        , Stuff(
                (
                Select ', ' + F1.Flags
                From Flags As F1
                Where F1.ClassId = C.Id
                Order By F1.Flags
                For Xml Path('')
                ), 1, 2, '') As Flags
        , Stuff(
                (
                Select ', ' + S1.Sessions
                From Sessions As S1
                Where S1.ClassId = C.Id
                Order By S1.Flags
                For Xml Path('')
                ), 1, 2, '') As Sessions
    From Class As C
    

    【讨论】:

      【解决方案2】:
      select Class.ID,Name,Flags,Sessions
      from Class
      inner join flags on class.id = flags.classid
      inner join sessions on class.id  = sessions.classid
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-01
        • 1970-01-01
        • 2015-04-30
        • 1970-01-01
        • 2016-02-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多