我正在开发一个里程表应用程序来跟踪我每天开车多少公里,这些结果存储在一个数据库中。由于我的车没有给出白天驱动多少公里,我从今天的公里数减去总公里数。
让我们说总公里数是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'答案 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