我正在试图计算出我数据库中某些产品的总体积,我正在尝试列出所有容量为3000或以上的产品....
所以我这样做一个查询:
SELECT (
products_width * products_height * products_length
) AS total_volume
FROM `price`
where total_volume > 3000
但是我得到一个错误,说明where子句中不存在“total_volume”列,你能让我知道如何解决这个问题吗?
答案 0 :(得分:1)
尝试:
SELECT (
products_width * products_height * products_length
) AS total_volume
FROM `price`
having total_volume > 3000
或
select *
from (
SELECT (
products_width * products_height * products_length
) AS total_volume
FROM `price`
)
where total_volume > 3000
对于解释,您不能直接在where子句中使用total_volume
,因为它是在查询的选择部分中创建的。在这种情况下可以使用having
,或者您可以使用子查询。
答案 1 :(得分:0)
SELECT (
products_width * products_height * products_length
) AS total_volume
FROM `price`
HAVING total_volume >= 3000
即 - 改变WHERE为HAVING,就是这样。
答案 2 :(得分:0)
您需要在WHERE中重复公式:
SELECT (products_width * products_height * products_length) AS total_volume
FROM `price`
where (products_width * products_height * products_length) > 3000