我需要显示一组来自数据库的可用空间结果,条件是:
- alm_num = 1
- alm_date 2012 年 11 月 26-29 日
- 和 sum_num > or = 3
然后我这样编写 mySQL:
select sum(villas_allotment.alm_num) as sum_num,
villas_allotment.alm_id as aid, villas_db.v_name as vname
from villas_allotment
inner join villas_db on villas_allotment.alm_vid=villas_db.v_id
where alm_num='1'
and alm_date between '2012-11-26' and '2012-11-29'
and alm_vid='3'
and sum_num>='3'
但是我有:
#1054 - Unknown column 'sum_num' in 'where clause'
那么你们能否建议我如何从这个错误中幸存下来。 问候,
最佳答案
您需要对聚合列的条件使用HAVING
:
select
sum(villas_allotment.alm_num) as sum_num,
villas_allotment.alm_id as aid,
villas_db.v_name as vname
from villas_allotment
inner join villas_db on villas_allotment.alm_vid = villas_db.v_id
where alm_num = '1'
and alm_date between '2012-11-26' and '2012-11-29'
and alm_vid = '3'
group by villas_allotment.alm_id, villas_db.v_name
having sum(villas_allotment.alm_num) >= 3
您还需要在非聚合列上添加一个group by
子句,这是我为您添加的。
关于MySQL 求和列并将其与给定值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13519035/