标题:一道查询题
只看楼主
快乐小小
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-4-10
 问题点数:0 回复次数:5 
一道查询题
老师布置了一道题:显示所有平均工资低于全部职工工资的职工的职工号和姓名.下面是我做的:
select 职工号,姓名
from salary
where 工资 in
(select 职工号,avg(工资)
from salary
group by 职工号
where avg(工资)<(select avg(工资)from salary)
)
当然我做的是错的,希望大家帮我改正改正,把这道题解决了.
附:我知道自己编的东西哪里出错了,但就是编不出成功啊.还有每个职工不止一次工资,希望大家明白我的意思,谢谢了!
搜索更多相关主题的帖子: 查询 
2007-04-22 13:45
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
得分:0 
工资 in
(select 职工号,avg(工资) //in前后的个数不一致

where avg(工资)  //聚合函数不能直接在where后使用,聚合函数的执行是在group by之后

sql语句的执行流程是,from->where->group by->聚合函数->having->order by->top->distinct->select

26403021 sql群 博客 blog./user15/81152/index.shtml
2007-04-22 16:06
快乐小小
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-4-10
得分:0 

那这道题该怎样编呢?我实在不会啊!最郁闷的是自己知道自己错在哪儿,却没办法改正.

2007-04-22 17:12
hustcmd
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-4-19
得分:0 
select 职工号,姓名
from salary
where 工资 in
(select 职工号,avg(工资)
from salary
where avg(工资)<(select avg(工资) from salary)
group by 职工号)

这样的么????
2007-04-23 22:06
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
得分:0 
group by 职工号,放在括号外面

有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2007-04-24 11:24
快乐小小
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-4-10
得分:0 
谢谢各位了
2007-05-20 21:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-133986-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.862516 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved