我有一个列名称和数量的表,我想查询总和(金额)的数据,在每个组中说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> </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的用法 我知道这是处理这个问题的一种不好的方法,但我真的被卡住了。
答案 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