2013-01-15 42 views
1

我正在開發一個里程錶應用程序來跟蹤我每天駕駛多少公里,這個結果存儲在數據庫中。由於我的車在白天駕駛時沒有給出多少公里,所以我從今天的公里減去總公里數。減去現場插入

假設總公里數是42,904。我得到的值與查詢是這樣的:

SELECT SUM(kilometros) FROM `kilometraje` WHERE id_vehiculo =2 

但今天我的里程錶顯示42967公里,然後我手動做減法,並插入到數據庫的差異。

INSERT INTO kilometraje (id_vehiculo, kilometros, fecha) VALUES (2, 63, '2013-01-14') 

如何實現在單個查詢這個過程?我試過沒有成功如下:

INSERT INTO kilometraje (id_vehiculo, kilometros, fecha) VALUES (2, 42967-(SELECT SUM(kilometros) FROM `kilometraje` WHERE id_vehiculo =2) , '2013-01-14') 

因爲我得到這個錯誤: - 你不能指定目標在表 'kilometraje' FOR UPDATE FROM子句

回答

2

使用INSERT..INTO SELECT

INSERT INTO kilometraje (id_vehiculo, kilometros, fecha) 
SELECT 2, 42967 - SUM(kilometros), '2013-01-14' 
FROM `kilometraje` 
WHERE id_vehiculo = 2 
+0

它的工作,謝謝 –

+0

不客氣':D' –