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

标签 mysql string compare sum

我需要显示一组来自数据库的可用空间结果,条件是:

  1. alm_num = 1
  2. alm_date 2012 年 11 月 26-29 日
  3. 和 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/

相关文章:

MySQL 错误、事件连接、拒绝访问、无权限

c# - 不允许大于 max_allowed_pa​​cket 的数据包

java - 按多个数字对 Java String 数组进行排序

java - 添加到以下字符串的空格分隔符

java 。比较字符串时忽略重音符号

javascript - Node.js 处理异步

SQL:中断查询

Java数组栈实现字符串转换和增长

encryption - 使用 MS seal 比较两个密文?

ruby - 如何让 Ruby 将字符串的索引视为字符(而不是 ASCII 代码)?