注册 登录
编程论坛 Oracle论坛

关于oracle9i的多表连接查询问题

ningkun 发布于 2007-10-14 20:40, 2668 次点击
有连个表
1,雇员表
emp(
id number pk,
name char notn null,
salary number,
depid number 是表dep中id的外键,
)
2.部门表
dep(
id number pk,
name char notnull,
manager varchar2(10)

向表中添加若干记录,注意约束条件。
问题1:
查询出所有的平均工资大于8000的部门的名称,
部门平均工资和部门经理名称。
问题2:
查询出所有工资高于所在部门平均工资的职工信息
(职工号,姓名,工资,部门名称,所在部门平均工资)。


我的问题一答案:select dep.name,dep.manager,avg(emp.salary) from dep,emp where dep.id=emp.dep_id group by emp.dep_id having avg(emp.salary)>500
标准答案是:select dep.name,dep.manager,temp.sy from dep,(select avg(salary)sy,dep_id from emp group by dep_id having avg(salary)>500)temp where dep.id=temp.dep_id

怎么我的语句总是说不是group by 语句。为什么一定要用虚拟表??、
1 回复
#2
ILoveMK2007-10-14 22:31
在group by语句中,select子句只能出现group by子句中的列或者其他列的聚合函数
1