[英]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.