在WHERE语句中使用别名列

时间:2015-12-29 16:40:38

标签: mysql

我知道我不能在WHERE子句中使用别名列,所以我试图找出编写查询的最佳方法,但我正在努力。我尝试过“HAVING”来过滤它,但后来我不能同时使用GROUP BY,这使得我的小计列对整个数据库中的所有记录求和。

这是我正在尝试做的事情:

SELECT a.ID, SUM(b.Qty * b.Price) AS Subtotal
FROM tbl_One AS a
LEFT JOIN tbl_Two AS b ON b.TwoID = a.ID
WHERE Subtotal > 100 AND Subtotal < 200
GROUP BY a.ID

有关如何以不同方式做到这一点的任何建议都将非常感谢!

1 个答案:

答案 0 :(得分:2)

你是对的,你不能在WHERE或HAVING条款中调出你的别名,但除此之外我不确定你的意思; GROUP BY和HAVING意在一起使用:

SELECT a.ID, sum(b.Qty*b.Price) AS Subtotal
FROM tbl_One AS a
LEFT JOIN tbl_Two AS b ON b.TwoID = a.ID
GROUP BY a.ID
HAVING sum(b.Qty*b.Price) > 100 AND sum(b.Qty*b.Price) < 200