繁体   English   中英

SQL查询合并ID上的行

[英]SQL Query Combine Rows on ID

我试图在我的报价历史记录表上运行查询,并试图了解我们的响应时间。

我有一个名为status_history的表,我希望为同一报价返回两行之间的日期差。

我有以下查询:

SELECT
    quote_number,
    status,
    date,
    DATEDIFF
    (hh,
    (SELECT dateEntered 
            FROM status_history 
            WHERE status = 'Submitted'),
    (SELECT dateEntered 
            FROM status_history 
            WHERE status = 'Accepted')) as hour_difference

FROM 
    status_history

WHERE 
    status in ('Submitted','Accepted')

我正在尝试将最终查询输出如下:

quote_number| hour_difference

我很难让它以我想要的方式输出,因为每个quoteid可以有多个行,因为它可以多次更改状态。 就像在这里看到的那样:

quote_number |  status     |  date
---------------------------------------------------
1234         | Submitted   |  2014-05-12 00:00:00.000
1234         | Accepted    |  2014-05-13 00:00:00.000
1234         | Complete    |  2014-05-14 00:00:00.000
1234         | Incomplete  |  2014-05-15 00:00:00.000

最终,我想检查所有状态更改之间的时间,但是现在就应该让我继续。

再次感谢!

这是您想要的吗?

SELECT quote_number, 
       DATEDIFF(hh,
                max(case when status = 'Submitted' then dateEntered end),
                max(case when status = 'Accepted' then dateEntered end)
               ) as hour_difference
FROM status_history
WHERE status in ('Submitted','Accepted')
GROUP BY quote_number;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM