1

我正在努力从如下所示的表中获取数据:

数据示例

水平显示,按 GroupID 分组,然后是开始/处理/停止时间(按此顺序)显示在单行上,如下所示:

在此处输入图像描述

我已经尝试编写几个 SQL 案例语句,但我无法让它工作。我按照网上的一些建议说要在 SSRS Report Builder 的表中编写 IIF 表达式,但我无法让它工作。任何帮助都会很棒。

4

1 回答 1

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 是关联它们的“粘合剂”。

于 2018-12-09T09:45:14.890 回答