feetable为费用表,fee为费用 beginDate为开始时间,endDate为结束时间
select sum(fee*?) from feetable
?为:endDate-beginDate的值,如果大于12就取12,小于12就取他们之间的差值~!
在sql语句中能否做判断?   

解决方案 »

  1.   

    select sum(fee*(case when endDate-beginDate >= 12 then 12 else endDate-beginDate end)) from feetable 
      

  2.   

    mysql?日期差用datediff
    select sum(fee*(if(datediff(endDate,beginDate)>=0,12, endDate-beginDate ))) from table
     
      

  3.   

    select sum(fee*LEAST(datediff(endDate,beginDate),12)) from feetable
      

  4.   

    或者select sum(fee*(if(datediff(endDate,beginDate)>=12,12, datediff(endDate,beginDate) )))  from feetable