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/