mysql - SQL SUM 帮助 - 仅返回 1 个字段

标签 mysql sql

My SQL 只返回一个字段,而它应该为每个用户返回一个字段。

知道我哪里出错了吗?如果您需要更多信息,我可以提供,但我现在不确定该去哪里。

这是我的 SQL:

SELECT uId, uForename, SUM(biProductPrice * biQuantity) AS uTotalSpent 
FROM users 
LEFT JOIN orders ON uId = ordUserId 
LEFT JOIN basket ON ordUserId = bUserId 
LEFT JOIN basketitems ON bId = biBasketId 
WHERE ordStatus BETWEEN 4 AND 50
GROUP BY uId, uForename

任何以 u 开头的列都属于 users 表。

任何以ord开头的列都属于orders表。

任何以 b 开头的列都属于篮子表。

任何以bi开头的列都属于basketitems表。

编辑:

现在一切正常,除了我的 SUM,只有 2 个字段的 ordStatus 在 4 到 50 之间,因此它们是唯一适用的字段,其中一个字段的 biQuantity 为 8,biProductPrice 为 100,另一个字段有biQuantity 为 1,biProductPrice 为 100,为什么它返回值 400?

最佳答案

按用户分组,返回每个用户的总和

SELECT users.id, users.name, SUM(biProductPrice) AS uTotalSpent 
FROM users 
LEFT JOIN orders ON uId = ordUserId 
LEFT JOIN basket ON ordUserId = bUserId 
LEFT JOIN basketitems ON bId = biBasketId 
WHERE ordStatus BETWEEN 4 AND 50
group by users.uId, users.name

关于mysql - SQL SUM 帮助 - 仅返回 1 个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22459467/

相关文章:

用于 php 的 phpMyAdmin 日期时间选择器

sql - 如何在postgres中加入空值填充行

mysql - 按多列的最高平均排名排序

php - 使用php将excel文件导入mysql如何动态获取/添加和插入列?

php - 如何每天自动运行php脚本?

mysql - Ruby on Rails/Ampps/mysql.sock 丢失?

mysql - 左连接两个 View 很慢?

php - 如何将表单输入设置为 Json 打印 php 文件中的变量?

c# - 连续运行 MySQL 查询(在 C# 程序中)以查找新添加的记录

sql - 在 ORACLE 中插入触发器