回 帖 发 新 帖 刷新版面

主题:关于select语句用having子句过滤中间结果,请教大虾!


select 所属部门 ,avg(工资) as 平均工资

from ygsjb

group  by  所属部门

having 平均工资>2000

提示以下错误信息:

服务器: 消息 207,级别 16,状态 3,行 2
列名 '平均工资' 无效。

如果不要having 平均工资>2000  这一句,刚可以正常显示中间结果,如下
   
        所属部门     平均工资
    检验部       1500
    录入部       1000  
    项目部       2500
    办公室       3000

为什么“ having 平均工资>2000 ”,这一句会出错呢?



还问一个题 ,在transact sql程序设计中,单引号''  和双引号""有什么区别?









回复列表 (共1个回复)

沙发

have
是对分过组的数据再进行显示过滤
一般是和group by连用,使满足条件的组显示
比如
select *
from employee
group by deptment
having count(*)>10
但是你的select 语句中,如果某一组中既有满足,也有不满足条件的,那它是显示还是不显示该组呢

我来回复

您尚未登录,请登录后再回复。点此登录或注册