2013-10-09 34 views
-1

我有一個名稱數量,unit_price和total_amount。我的數據庫中的total_amount字段設置爲零,在我的查詢中,我使用SUM(unit_price * quantity)AS total_amount來獲取總值作爲total_amount。但是,當我試圖獲得總金額的總和,因爲total_sum總是得到0.如果是因爲我的數據庫中的total_amount字段設置爲零?我想要做的是獲得SUM(total_amount)AS total_sum,但它始終顯示0.如何獲得表列的總和?

這是我的查詢。

<?php 
$mysqli = new mysqli("localhost", "root", "", "app"); 

    $term = $_GET['supp']; 
    $result = $mysqli->query("SELECT *, SUM(unit_cost*quantity) AS total_amount FROM procurement WHERE supplier LIKE '%".$term."%' GROUP BY counter"); 
    echo'<table id="tfhover" cellspacing="0" class="tablesorter" style="text-transform:uppercase;" border="1px"> 
     <thead> 
     <tr> 
    <th>SUPPLIER</th> 
    <th>ITEM</th> 
    <th>DESCRIPTION</th> 
    <th>QTY</th> 
    <th>UNIT</th> 
    <th>UNIT PRICE</th> 
    <th>Total Amount</th> 
     </tr> 
     </thead>'; 
     echo'<tbody>'; 
while($row = $result->fetch_assoc()){ 
echo'<tr> 
      <td>'.$row['supplier'].'</td> 
      <td>'.$row['item_name'].'</td> 
      <td>'.$row['item_description'].'</td> 
      <td>'.$row['quantity'].'</td> 
      <td>'.$row['unit'].'</td> 
      <td>'.number_format($row['unit_cost'], 2, '.', ',').'</td> 
      <td>'.number_format($row['total_amount'], 2, '.', ',').'</td> 
     </tr>'; 
     } 
     echo'<TR> <TD COLSPAN=6 BGCOLOR="#99CCFF">TOTAL AMOUNT</TD> <td>'.number_format($row['total_sum'], 2, '.', ',').'</td></TR>'; 
    echo "</tbody></table>"; 

?> 

我的另一個問題是,當我插入此代碼回聲總金額'.number_format($行[ 'total_sum'],2,..., ' ' '')'。';在while循環中。我想只有1總額的行。

+1

你應該閱讀這個鏈接http://beginner-sql-tutorial.com/sql-group-by-clause.htm –

回答

0

SELECT *, SUM(unit_cost*quantity) AS total_amount FROM procurement WHERE supplier LIKE '%".$term."%' GROUP BY counter"

這是不會更新數據庫的任何數據的SELECT語句。 您的total_amount似乎可以在您每次需要時進行評估,並不一定以表格的列形式存在。

另外,你可以發佈你的表結構嗎?實際上SQL似乎不正確無論如何。

+1

我解決了它,我創建了另一個查詢$ result1 = $ mysqli-> query(「SELECT * ,SUM(unit_cost * quantity)AS total_amount FROM採購WHERE supplier LIKE'%「。$ term。」%'GROUP BY supplier「); \t而($行= $ result1-> FETCH_ASSOC()){ \t回聲 TOTAL AMOUNT​​「.number_format($行[ 'TOTAL_AMOUNT'],2 ,'。',',')'。''; \t} 如果它是正確的? –