表mile_sum
主键(自增列)     车号                  里程数                                          日期       
ms_id(integer) vehicle_id(integer) miles(double) indexId(integer) totalmiles server_time(datetime)
1              71506               99.920         null             null      2007-6-6 4:50:45 
2              71506               69.070         null             null      2007-6-6 8:59:26
3              71506               120.457        null             null      2007-6-8 12:56:12 
4              100026              100.250       null              null      2009-3-2 8:20:12
5              100026              150.245       null              null      2009-3-3 12:20:12
6              100026              190.547       null              null      2009-3-3 15:05:20
7              100026              250.475       null              null      2009-3-4 9:15:6
8              100026              451:524       null              null      2009-3-5 14:12:20问题:页面上面有两个框,可以选择日期(javascript写的,点击后有日历),一个是起始日期,一个是终止日期。
求这两个日期之间的的里程数。切记:数据库为mysql。
sql语句若正确,立马给分。

解决方案 »

  1.   

    select sum(里程数) from  mile_sum where  server_time >   起始日期 and    server_time <终止日期
      

  2.   

    你想要的结果是什么样的?说的不是很清楚
    select 
      vehicle_id,
      sum(miles) as miles
    from 
      mile_sum 
    where  
      server_time>起始日期 and server_time<终止日期
    group by vehicle_id
      

  3.   

    第一条数据的时间是14点,不是4点。写错了,不好意思还有,这个两个日期之间行驶的里程数不应该是sum,应该用到相减。
      

  4.   

    这条语句可能类似与:Select max(miles) - min(miles) miles ,vehicle_id
      

  5.   

    select 
      vehicle_id,
      max(miles)-min(miles)  as miles
    from 
      mile_sum 
    where  
      server_time>起始日期 and server_time<终止日期
    group by vehicle_id其实还是没有完全理解你的需求,表的字段代表什么意思也应该说明一下
      

  6.   

    不是吧,应该不能直接用MAX-MIN,楼主应该说明某一vehicle_id
    在有相同日期情况下,怎么取数。
      

  7.   

    答案如下:
    select
    date(server_time),vehicle_id,max(miles)-min(miles)
    from
    miles_sum
    where
    DATE(server_time)>='2009-3-20' and
    DATE(server_time)<='2009-3-22' and
            vehicle_id in(100026,1000027)
    group by 
            vehicle_id,date(server_time)感谢大家...
      

  8.   


    结果不对有可能是时间精度的问题,也就是如果时间包含有小时的,就没有包含3月4日那天的
    改一下:select 
      vehicle_id,
      max(miles)-min(miles)  as miles
    from 
      mile_sum 
    where  
      DATE_FORMAT(server_time,GET_FORMAT(DATE,'ISO'))>=起始日期 and DATE_FORMAT(server_time,GET_FORMAT(DATE,'ISO'))<=终止日期
    group by vehicle_id--说明:起始日期和终止日期的格式为'2009-03-31'这种格式,以上用between and 也可以
    试试这样结果是否正确?