【发布时间】:2015-07-25 13:13:50
【问题描述】:
我有一个表格,其中定期存储车辆里程,即车辆的里程。
The table:
----------
ID (primary key)
Vehicle_id
date_of_reading (datetime)
Mileage
到月底,我想选择过去一个月的最后读数并从本月的最后读数中减去它,以获得所有车辆行驶的总公里数。
http://sqlfiddle.com/#!9/34b8b
表格结构
CREATE TABLE `tbl_readings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`vehicle_id` int(11) NOT NULL,
`km_driven` int(11) NOT NULL,
`dt_of_reading` datetime NOT NULL,
`dt_of_entry` datetime NOT NULL,
`entry_user` varchar(50) NOT NULL, PRIMARY KEY (`id`),
KEY `vehicle_id` (`vehicle_id`), CONSTRAINT `tbl_readings_ibfk_1` FOREIGN KEY (`vehicle_id`) REFERENCES `table_vehicle_info` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB AUTO_INCREMENT=394 DEFAULT CHARSET=latin1
几乎每天都会在此表中发布车辆仪表读数。到月底,这些读数将用于计算车辆行驶的公里数。公里数必须通过取上个月的最后读数并从当前月份的最后读数中减去来计算。
我希望现在更清楚了。我意识到我的问题太模棱两可了。
【问题讨论】:
-
请为您的表添加
CREATE TABLE语句。 -
@jpw 因为它比一堵墙更容易阅读,比自然语言更不模棱两可,如果你愿意的话,更容易尝试:)
-
请使用示例数据和所需结果编辑您的问题。措辞模棱两可。
-
@jpw 提出了一个关于 (last, last) 和 (first, last) 的好观点。据我们所知,2015 年 6 月的最后一次读数是 6 月 24 日。现在您进入 2015 年 7 月,第一次阅读是 7 月 10 日。请清理问题
-
谢谢@DrewPierce,我回答错了问题。