我有一个列名数量,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>";
?>
我的另一个问题是当我插入此代码echo'TOTAL AMOUNT'.number_format($ row ['total_sum'],2,'。',',')。'';在while循环中。我想要总共只有1行。
答案 0 :(得分:0)
SELECT *, SUM(unit_cost*quantity) AS total_amount FROM procurement WHERE supplier LIKE '%".$term."%' GROUP BY counter"
这是一个select语句,它不会更新数据库中的任何数据。
您的total_amount
似乎可以在每次需要时进行评估,但不一定作为表中的列存在。
另外,你可以张贴你的桌面结构吗?实际上SQL似乎不正确。