0

mysql にテーブル MeterReading があり、次の列があります

meterid bigint(4),
reading bigint(4),
date date,
time time,
consumption,
primary key(meterid,reading)

私は消費を除いてこのテーブルに値を挿入しています。私の問題は、これらの値に基づいてテーブルを更新する方法です。

私は次のクエリを試しました

update MeterReading a 
set consumption=(select reading-IFNULL((select MAX(reading) from MeterReading  where meterid=a.meterid AND (date < a.date OR date = a.date AND time < a.time )),0));

私は次のような結果が欲しい:

  meterid | reading | date       | time     | consumption |
+---------+---------+------------+----------+-------------+
|       1 |     450 | 2012-10-05 | 06:05:05 |        450  |
|       1 |     550 | 2012-10-06 | 08:05:05 |        100  |
|       1 |     600 | 2012-10-07 | 09:05:05 |        50   |
|       1 |     700 | 2012-10-08 | 10:05:05 |        100  |

私を助けてください

4

1 に答える 1