MySQL sum列并将其与给定值进行比较

时间:2012-11-22 19:33:36

标签: mysql string compare sum

我需要显示DB中可用房间的一组结果,条件是:

  1. alm_num = 1
  2. alm_date 2012年11月26日至29日之间
  3. 和sum_num>或= 3
  4. 然后我像这样编写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'
    

    那么你们可以建议我如何从这个错误中生存下来。 的问候,

1 个答案:

答案 0 :(得分:3)

您需要在汇总列的条件中使用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子句,我已为您添加了这些子句。