我在查询中加入了3个表。在我的库存数据库中,价格来自表c,数量来自表b。如何显示在列的给定值和最大值之间进行排序的用户的记录列表。 我在mysql中使用下面的查询来检索记录。正如所料,它显示错误。任何帮助将受到高度赞赏
SELECT .... GROUP BY userid HAVING SUM(c.`price` * b.`quantity`) BETWEEN 9000 AND MAX(SUM(c.`price` * b.`quantity`))
答案 0 :(得分:2)
如果我理解正确,则不需要BETWEEN
。试试这种方式
SELECT ....
GROUP BY userid
HAVING SUM(c.`price` * b.`quantity`) >= 9000
如果您想知道无法链接聚合函数。即使你可能它没有意义,因为你按用户ID分组,但试图从所有用户获得SUM的MAX。为了实现这一点,你应该使用子查询来获得最大值,例如
SELECT ....
GROUP BY userid
HAVING SUM(c.`price` * b.`quantity`) =
(
SELECT MAX(total) total
FROM
(
SELECT SUM(c.`price` * b.`quantity`) total
GROUP BY userid
) q
)