-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>";

?>

私の別の問題は、このコードを挿入するときです echo' TOTAL AMOUNT '.number_format($row['total_sum'], 2, '.', ',').''; while ループ内。合計金額の行を 1 つだけにしたい。

4

1 に答える 1

0

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

これは、データベース内のデータを更新しない select ステートメントです。total_amount必要なときに毎回評価できるあなたの は、テーブルの列として必ずしも存在しないようです。

また、テーブル構造を投稿できますか? とにかく、SQLは正しくないようです。

于 2013-10-09T03:17:28.257 に答える