2015-10-27 38 views
1

我有一個列名稱和數量的表,我想查詢數據總和(金額)upto讓我們說1000每個組,在行值大於1000的情況下,它仍然可以顯示在它自己的組中。我已經嘗試過使用500到1000之間範圍的PHP循環,但這種方式產生了很多組,我希望可以作廢。有什麼辦法可以在單個mysql查詢中做到這一點。問候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++; 

} 

我決定表明,我沒有5月,以反映goto語句的使用情況,以保持列ID 我知道這是來處理這一個貧窮的方式,但我真的很卡住了一切。

回答

1

能否請你嘗試這種方式

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

Shaymol,其實我想的是分組到其總和duty_amount不超過1000,但關閉ED它團體和500只是我如何努力首先要處理它 –

+0

請問您可以發佈一些您想要的示例數據和輸出。 –

+0

抱歉的延遲,但圖像在這裏http://i.stack.imgur.com/B9N7Q.png –