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

GROUP BY的查询中缺少一个。您很可能想要添加GROUP BY users.user_id

于 2012-09-11T14:25:18.030 回答
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'];
    }

如果你想要整个全球总和,你必须这样做:

  • 以这种方式修改您的查询:

    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 回答