0

ユーザーのトランザクションを取得するこのクエリがあり、出力は情報を含むテーブルです。いくつかの数字を含むこの名前の行がありbasket_value、それらの数字の合計を取得する必要があります。手伝っていただけませんか?

$query3 = 'SELECT users.first_name,users.last_name,users.phone,
           retailer.date, SUM(retailer.basket_value), 
           retailer.time,retailer.location,retailer.type_of_payment
           FROM users ,retailer 
           WHERE users.user_id="'.$id_user.'"
           AND users.user_id=retailer.user_id GROUP BY users.user_id';

$result3 = mysql_query($query) or die(mysql_error());

// Print out result
while($row = mysql_fetch_array($result3)) {
    echo "Total ". $row['user_id']. " = $". $row['SUM(basket_value)'];
    echo "<br />";
}
4

4 に答える 4

0

選択リスト内の他のすべての列を省略し、セットで sum() 集計のみを実行してGROUP BY句を回避できます。

$query3 = 'SELECT SUM(retailer.basket_value) as total_sum
FROM users ,retailer WHERE users.user_id="'.$id_user.'"
AND users.user_id=retailer.user_id';
于 2012-09-11T14:28:16.943 に答える
0

あなたのクエリにも問題があり、idユーザーを取得する必要があるとします。そのようにします

$query3 = 'SELECT users.user_id,users.first_name,users.last_name,
                  users.phone, retailer.date, 
                  SUM(retailer.basket_value) as total_sum,
                  retailer.time,retailer.location,retailer.type_of_payment
           FROM users ,retailer WHERE users.user_id="'.$id_user.'"
           AND users.user_id=retailer.user_id
           GROUP BY users.user_id,users.first_name,users.last_name,
                    users.phone, retailer.date,retailer.time,retailer.location,
                    retailer.type_of_payment '

$result = $mysqli->query($query3);

各ユーザーの合計が必要な場合:

while ($row = $result->fetch_row()) {
        echo "Player: ".$row['user_id']." total: ".$row['total_sum'];
    }

WHOLE GLOBALの合計が必要な場合は、次のようにする必要があります。

  • その方法でクエリを変更します。

    SELECT SUM(retailer.basket_value) as total_sum                 
    FROM retailer
    
  • while次のようなループに合計します。$total += $row['total_sum'];

于 2012-09-11T14:29:37.710 に答える
0

このクエリを試してください:

SELECT u.first_name, u.last_name, u.phone, SUM(r.basket_value) as total_sum
FROM users u
JOIN retailers r
  ON u.user_id = r.user_id
WHERE u.user_id="'.$id_user.'"
GROUP BY u.user_id
于 2012-09-11T14:30:21.097 に答える
0

GROUP BYクエリにa がありません。追加したい可能性が最も高いGROUP BY users.user_id

于 2012-09-11T14:25:18.030 に答える