1

我正在开发一个里程表应用程序来跟踪我每天驾驶的公里数,这个结果存储在数据库中。由于我的车没有给出每天行驶多少公里,所以我从今天的公里数中减去总公里数。

假设总公里数为 42,904。我通过这样的查询获得该值:

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

但是今天我的里程表显示 42,967 公里,然后我手动进行减法并将差值插入数据库中。

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')

因为我收到此错误: -您无法在 FROM 子句中指定目标表“kilometraje”进行更新

4

1 回答 1

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
于 2013-01-15T00:24:47.753 回答