mysql将sum(列)分组为最大值,但总和必须低于给定值

时间:2015-10-27 08:20:51

标签: php mysql

我有一个列名称和数量的表,我想查询总和(金额)的数据,在每个组中说1000,如果行值大于1000,它仍然可以显示在自己的组。我试过这个使用一个总和在500到1000之间的PHP循环,但这种方式产生了很多组,我希望可能是一个空白。有什么方法可以在一个mysql查询中执行此操作。问候

这就是我歪曲的方式!

//this query helped me in maneuvering in provision of limits each time 
$totalLines=mysql_query("select COUNT(*) as totalRows from chasis where chasis.BL_No =xxxx order by chasis.BL_No ")or die(mysql_error());   
$fetch_totalLines=mysql_fetch_array($totalLines);
$found_rows=$fetch_totalLines['totalRows'];
$total=0;
$Toplimit=0;
$z=0;
a:
if($Toplimit>0){
$Toplimit=$Toplimit;
//$found_rows=$found_rows-$Toplimit;
$total=0;
}


$query=mysql_query("select * from chasis where chasis.BL_No =xxxx order by chasis.duty_amount limit ".$Toplimit.",".$found_rows." ")or die(mysql_error());  
$i=1;
while($row=mysql_fetch_array($query)){
$total=round($row['duty_amount'],0)+$total;
 echo'<tr>
<td>'.$i.'</td>
<td>'.$row['BL_No'].'</td>
<td>'. mb_substr($row["make"], 0, 1,"UTF8")."-";
            echo $row["model"];  
            echo'</td>
<td>'.$row['chasisNo'].'</td>
<td>'.$row['cc'].'</td>
<td>'.date("Y F", strtotime($row['year'])).'</td>
<td>'.$row['EntryNumber'].'</td>
<td>'.round($row['duty_amount'],0).'</td>
<td>&nbsp;</td>
</tr>';
if($total<=1000 and $total>=500 ){

  echo"<td colspan='8' align='right'><b>Duty Cheque for ".$i." units</b></td>
  <td><b>".$total."</b></td>
  ";
  $Toplimit=$Toplimit+$i;
  $z=$z+$i;
   goto a;
  }
  $i++;

 }

我决定展示我所做的一切,以反映goTo语句用于保存列ID的用法 我知道这是处理这个问题的一种不好的方法,但我真的被卡住了。

1 个答案:

答案 0 :(得分:1)

请你这样试试

select * from chasis where chasis.BL_No =xxxx AND chasis.duty_amount>=500 AND chasis.duty_amount<=1000 order by chasis.duty_amount