我正在努力从看起来像这样的表中获取数据:
按水平显示,按GroupID分组,然后将开始/过程/停止时间(按此顺序)显示在单行上,如下所示:
我尝试编写一些SQL案例语句,但是无法正常工作。我遵循一些在线建议,说要在SSRS报表生成器的表中编写一个IIF表达式,但我无法使它正常工作。任何帮助都会很棒。
答案 0 :(得分:1)
使用普通SQL,我认为这是您要查找的查询
SELECT
bt.GroupID as 'ID',
bt.EventStartTime as 'StartStartTime',
bt.EventEndTime as 'StartEndTime',
bt.TotalEventDuration as 'StartDuration',
pt.EventStartTime as 'ProcessStartTime',
pt.EventEndTime as 'ProcessEndTime',
pt.TotalEventDuration as 'ProcessDuration',
st.EventStartTime as 'StopStartTime',
st.EventEndTime as 'StopEndTime',
st.TotalEventDuration as 'StopDuration'
FROM
PROCESS_LOG bt
LEFT JOIN PROCESS_LOG pt ON
bt.GroupID = pt.GroupID
LEFT JOIN PROCESS_LOG st ON
bt.GroupID = st.GroupID
WHERE
bt.Event = 'Start'
AND pt.Event = 'Process'
AND st.Event = 'Stop'
我假设您必须开始才能处理和/或停止,这似乎并不现实。 想法是将表连接3次以提取每个事件的信息,GroupID是关联它们的“胶水”。