在我的数据库中有这个
InspectionID Inspection Date OdometerReading Truck Id
1 2013-04-07 1000 1
2 2013-04-14 2040 1
3 2013-04-21 3000 1
... ..... ....
21 2013-05-23 1000 2
22 2013-05-30 2000 2
23 2013-06-07 3000 2
24 2013-07-14 2040 3
25 2013-07-21 3000 3
... ..... .... ....
30 2014-05-23 15050 3
34 2014-05-30 16032 1
我在我的datepicker上选择了DateStart:2013-04-01和DateFinished:2014-06-01,应该选择的查询是2013-04-07和2014-05-30。
总结我的问题:如何选择Date Start和DateFinished Query之间的第一行和最后一行,以便我可以计算特定时间段内每个truck_id的平均OdometerReading
答案 0 :(得分:0)
您可以通过使用DESC订单选择表的前1位并将其连接到ASC订单的前1位来执行此操作...
<强> EDITED 强>
SELECT Inspectiondate FROM TableName
ORder By Inspectiondate DESC LIMIT
UNION
SELECT Top 1 Inspectiondate FROM TableName
ORder By Inspectiondate LIMIT 1
答案 1 :(得分:0)
您的表结构是什么,或者您想要实现的目标并不完全清楚。根据以上数据,您似乎希望选择Inspection Date
在指定的开始日期和结束日期之间的所有行。
SELECT * FROM YourTable WHERE `Inspection Date` BETWEEN '2013-04-01' AND '2014-06-01'
请注意,BETWEEN具有包容性,因此如果您有关于&#39; 2013-04-01&#39;它会出现在结果中。
如果你想要每辆卡车的平均里程表,你可以通过分组实现这一目标。
SELECT AVG(OdometerReading),TruckId FROM YourTable WHERE `Inspection Date` BETWEEN '2013-04-01' AND '2014-06-01' GROUP BY TruckId