我希望有人能够帮助我找出如何使用所示的表来展平select,这样我就可以为每个User选择一行,其中包含每个事件的列。
简而言之,我正在创建以下临时表,其中充满了在给定的一周内由选定用户参加的事件。
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) 请直接查看下面的样表内容。为了清楚起见,我将一些值简化为相关的部分:
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语句中需要多少列。希望这是有意义的。如果有人给我指出正确的方向,我将不胜感激!
SELECT WeekBegin
,UserNo
,Name
,Attend
,FirstEventID
,FirstEventDate
,FirstEventHrs
,FirstEventScheduleBeg
,FirstEventScheduleEnd
,FirstVal1
,FirstVal2
,SecondEventID
,SecondEventDate
,SecondEventHrs
....https://stackoverflow.com/questions/50751316
复制相似问题