我知道我不能在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
有关如何以不同方式做到这一点的任何建议都将非常感谢!
答案 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