我正在开发一个里程计应用程序来跟踪我每天行驶多少公里,这个结果存储在一个数据库中。因为我的车没有给出一天开车的公里数,所以我从今天的公里数中减去总公里数。
假设总公里数是42904。我通过这样的查询得到这个值:

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

因为我得到这个错误:
-不能在FROM子句中为update指定目标表“公里数”

最佳答案

使用INSERT..INTO SELECT

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

关于mysql - 减去字段插入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14329215/

10-10 03:21