MySQL - 如何从同一个表

时间:2017-01-26 17:08:25

标签: mysql sql subtraction otrs

我需要帮助解决同一个表和列中的减法的小问题

好吧,我创建了一个视图,但该应用程序在同一个表和列中生成了使用时间的结果。

我的表格包含以下列:id,field_id,object_id和value_date。

| ID | FIELD_ID | OBJECT_ID | VALUE_DATE          |
| 55 | 4        | 33        | 2016-12-18 19:02:00 |
| 56 | 5        | 33        | 2016-12-18 19:12:00 |
| 57 | 4        | 35        | 2016-12-18 19:30:00 |
| 58 | 5        | 35        | 2016-12-18 20:00:00 |

我对sql知之甚少,但我在stackoverflow.com上尝试过timestampdiff,period_siff和其他一些函数。

有人帮我用ID 55替换了带有field_id 5的ID 56,用SQL在object_id 33中用field_id 4减去ID,以便在几分钟内得到结果。例如:10或00:10:00

关于这个问题的文章已经对我有所帮助。非常感谢你!

2 个答案:

答案 0 :(得分:1)

让我们假设您希望结果为日格式,然后查询将是:

SELECT DATEDIFF(day,startDate,endDate) AS 'Day'  
FROM table1;  

查找完整示例here

答案 1 :(得分:0)

解决方案如下:

select TIMESTAMPDIFF(MINUTE,F1.value_date,F2.value_date) as minutes, F1.value_date,F2.value_date,F1.object_id,F2.object_id,F1.field_id,F2.field_id
from otrs_tst.dynamic_field_value F1 
join otrs_tst.dynamic_field_value F2 on F1.object_id = F2.object_id
 where F1.field_id in ('4','5') 
 and F2.field_id in ('4','5') 
 and F2.field_id <> F1.field_id
 and F1.field_id < F2.field_id
 group by F1.object_id,F2.field_id