1

単一のSQLクエリで複数の行を合計して選択し、そのようにループしながら印刷することは可能ですか、それとも別の解決策ですか:

$query = mysql_query("SELECT SUM(Total), * FROM table");
while ($fetch = mysql_fetch_row($query)) {
    echo $fetch[a];
    echo $fetch[b];
    echo $fetch[c];
}
4

7 に答える 7

4

合計を計算するサブクエリで JOIN を使用します。

SELECT SumTotal, a.*
FROM Table a
JOIN (SELECT SUM(Total) SumTotal
      FROM Table) b
于 2013-08-22T08:09:40.813 に答える
1

@ 491243が提案したようにそれを行うことができます

SELECT (SELECT SUM(Total) FROM `table`) AS totalSum, * FROM `table`

ただし、データベースから選択している各行の列がSQL Engine計算され、結果が列フィールドに同じ値を持つ新しい列が送信されるため、これはお勧めできません。sumtotalphptotalSum

2つのクエリを実行することをお勧めします。1 つは行を選択するためのもので、もう 1 つは合計を取得するためのものです。

于 2013-08-22T08:07:56.887 に答える
0

GROUP BY句を使用します。

$query = mysql_query("SELECT *,SUM(Total) as TotalSUM FROM table GROUP BY Total");

    while ($fetch = mysql_fetch_row($query)) {

    echo $fetch[a];
    echo $fetch[b];
    echo $fetch[c];


    }
于 2013-08-22T08:00:06.123 に答える
0

通常、グループごとに合計できるように列ごとにグループ化し、この例の各 category_id に対して個別の行を提供します。

SELECT category_id, SUM(price) as totalprice
FROM products 
GROUP BY category_id 
于 2013-08-22T08:05:43.010 に答える