首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL透视(?)-按天/事件展平选择以包含完整一周的列

SQL透视(?)-按天/事件展平选择以包含完整一周的列
EN

Stack Overflow用户
提问于 2018-06-08 07:11:32
回答 1查看 35关注 0票数 0

我希望有人能够帮助我找出如何使用所示的表来展平select,这样我就可以为每个User选择一行,其中包含每个事件的列。

简而言之,我正在创建以下临时表,其中充满了在给定的一周内由选定用户参加的事件。

代码语言:javascript
复制
CREATE TABLE #ByEvent
       (WeekBegin        SMALLDATETIME      NOT NULL,
        UserNo           INT                NOT NULL,
        Name             VARCHAR(30)        NOT NULL,
        Attend           BIT                NOT NULL,               
        --- Event Portion ---------------------------   
        EventID          INT                NOT NULL,
        EventDate        SMALLDATETIME      NOT NULL,
        Hrs              NUMERIC(4,2)       NOT NULL,
        EventScheduleBeg SMALLDATETIME      NOT NULL,
        EventScheduleEnd SMALLDATETIME      NOT NULL,               
        Val1             VARCHAR(1)         NOT NULL,
        Val2             VARCHAR(1)         NOT NULL)   

请直接查看下面的样表内容。为了清楚起见,我将一些值简化为相关的部分:

代码语言:javascript
复制
WeekBegin   UserNo  Name   Attend EventID EventDate  Hrs  ScheduleBeg  ScheduleEnd
2018-05-27  24      Jim    T      257     5/29/18    4.0  12:00        16:00  
2018-05-27  24      Jim    T      258     5/29/18    2.0  18:00        20:00
2018-05-27  24      Jim    T      259     5/30/18    2.5  12:00        14:30   
2018-05-27  24      Tim    F      259     5/30/18    2.5  12:00        14:30   

我需要的是输出数据,如下面的选择所示。然而,我很难理解如何做到这一点。我认为我需要一个轴心(如果我在错误的轨道上并且过于复杂,请让我知道),但在给定的一周内可能没有或5+事件,因此我不知道在select语句中需要多少列。希望这是有意义的。如果有人给我指出正确的方向,我将不胜感激!

代码语言:javascript
复制
SELECT WeekBegin
      ,UserNo
      ,Name
      ,Attend
      ,FirstEventID
      ,FirstEventDate
      ,FirstEventHrs
      ,FirstEventScheduleBeg
      ,FirstEventScheduleEnd
      ,FirstVal1
      ,FirstVal2
      ,SecondEventID
      ,SecondEventDate
      ,SecondEventHrs
      ....
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50751316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档