2013-10-25 41 views
-1

需要获取当前小时和上一小时之间的两个值的差异,如下所述。Mysql发现当前小时和最后一小时之间的差异并使用当前小时行打印

作为第一步,我试图找出当前的小时值,但不知道如何从中减去第二最后一小时值,并伴随着当前时间显示行

 
    select mmeName,startDate,max(startTime),endDate,max(endTime),c_ratio,set_time 

    from attach 

    where type='INIT' and endDate=Date(now()) 

    group by mmeName 

我现有的表格式和要求输出捕获在附加的图像。

任何帮助/建议,将不胜感激!

enter image description here

+1

什么是last_diff和last_diff_2? – bksi

+0

可能重复的[mysql检索当前和最后一小时之间的区别](http://stackoverflow.com/questions/19592983/mysql-retrieve-difference-between-current-and-last-hour) –

+0

last hr diff is col- F(c_ratio of current_hour - last_hour)和类似的最后一个hr diff2是Col-G(set_time) – Siva

回答

0

假设你已经在你的表自动递增的ID,尝试此查询:

SELECT a1.mmeName, a1.c_ratio, a1.set_time, a0.c_ratio - a1.c_ratio AS last_hr, a0.set_time - a1.set_time AS last_hr_2 
FROM attach a1 
JOIN attach a0 ON a0.id = (SELECT MAX(id) FROM attach WHERE id < a1.id AND mmeName = a1.mmeName) 

在此查询,a1指当前行,而a0指上一行与mmeName相同。然后,你可以像这样建立像last_hr这样的字段:a0.c_ratio - a1.c_ratio

如果你只需要每一个mmeName一行,你将不得不总计差额,并GROUP BY mmeName

+0

不幸的是我没有在我的表中自动增加id :( – Siva

+1

然后,你怎么能排列行?你的主键是什么? –

+0

我是一个新手到mysql。请耐心等待!我将修改我的表,以包含一个新的列'id'作为主键! – Siva

相关问题