我的SQL数据库在2个日期之间选择

时间:2015-11-10 01:22:31

标签: mysql database

在我的数据库中有这个

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

2 个答案:

答案 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