繁体   English   中英

SQL>为单个结果选择多行

[英]SQL > Select multiple rows for single result

SQL表

我有上面的表,我需要做的是,例如基于该图像,返回的单行将显示:

Ticket ID |       Created       |       Assigned      | Time Difference  
    2     | 2015-05-31 09:18:44 | 2015-06-03 10:05:00 | $MATH_RESULT

该图像仅显示了一个示例,但我想让它返回同时具有“分配”时间和“创建”时间的每张票证。

我不是DBA,这超出了我的有限知识。 有人可以帮我实现这一目标吗?

您可以使用join为状态为“创建”的行查找状态为“已分配”的行:

select  c.ticket_id
,       c.timestamp
,       a.timestamp
,       datediff(a.timestamp, c.timestamp)
from    ticket c
join    ticket a
on      c.ticket_id = a.ticket_id
where   c.state = 'created'
        and a.state = 'assigned'

http://sqlfiddle.com/#!9/cf498/3

SELECT t.ticket_id,t.timestamp as created, t1.timestamp as assigned, (t1.timestamp - t.timestamp) as delay
FROM table1 t
LEFT JOIN table1 t1
ON t.ticket_id = t1.ticket_id
  AND t1.state = 'assigned'
WHERE t.ticket_id = 2
   and t.state = 'created'

或者如果您需要所有门票的清单

SELECT t.ticket_id,t.timestamp as created, t1.timestamp as assigned, (t1.timestamp - t.timestamp) as delay
FROM table1 t
LEFT JOIN table1 t1
ON t.ticket_id = t1.ticket_id
  AND t1.state = 'assigned'
WHERE t.state = 'created'

暂无
暂无

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

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