从字段插入中减去

时间:2013-01-15 00:22:45

标签: mysql sql sql-insert

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

让我们说总公里数是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'

1 个答案:

答案 0 :(得分: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