首页 文章

SQL查询:使用列中的数据作为另一个表中的列名? [等候接听]

提问于
浏览
0

我正在努力从一个看起来像这样的表中获取数据:

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

我曾尝试编写几个SQL case语句但我不能让它工作 . 我在线跟踪了一些建议,在SSRS Report Builder的表格中写了一个IIF表达式,但我无法让它工作 . 任何帮助都会很棒 .

1 回答

  • 0

    使用纯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是关联它们的“ Binders ” .

相关问题