我有一系列存储在表抄表的两个条目之间的差异,各由建筑ID,一个计ID,并在它被记录的时间确定。使用MySQL计算同一表
对于每个条目,我想搜索具有相同ID号和最接近的前一次的条目,然后我想使用前一次和以前的读数来计算时间步的长度和两次读数之间的差异。
所以,我目前有:
BuildingID | MeterID | Date_and_Time | Reading
,我想制作:
BuildingID | MeterID | Date_and_Time | Time_Since_Previous_Read | Accumulation_Since previous_Read
两个典型的条目可能是这样的:
1 | 1 | 2010-10-09 17:56:20 | 119.6
1 | 1 | 2010-10-09 18:01:08 | 157.4
,我想制作:
1 | 1 | 2010-10-09 18:01:08 | 00:04:48 | 37.8
如果没有前面的项存在(即对于第一次阅读)我想重新运行零时间和积累。
我非常感谢能为此提供的任何帮助,我一致努力在以前的帖子中找到答案,但无济于事,随时指导我获得一个良好的来源,如果这已经解决了别处。
谢谢
谢谢你的帮助,不幸的是似乎没有为我工作,它会产生结果,但他们很奇怪,我认为不准确(与我正在寻找什么)。我修改了一下,以便将特定的表和列名称炒到: – 2010-11-04 17:57:31
'SELECT a.BuildingID,a.MeterID,a.DateTime, timediff(a.DateTime,b.DateTime)AS'Time_Since_Previous_Read', a。 Value-b.Value AS'Accumulation', MAX(b.DateTime)AS'otherdateandtime' FROM'meterdata_test' as'a','meterdata_test' AS'b' WHERE a.BuildingID = b.BuildingID AND a。 MeterID = b.MeterID AND a.DateTime> b.DateTime GROUP BY BuildingID&MeterID' – 2010-11-04 17:58:57