SQL查询问题,不知该往哪个区发,愁死了,高手帮帮忙,感激ing

xplove1 2010-04-26 08:13:17
感觉就用这一部分就能描述问题了:
select deptno from
(select deptno,avg(sal) from emp group by deptno) t
where t.avg(sal) =
(select max(avg(sal)) from (select deptno,avg(sal) from emp group by deptno)) ;//emp是雇员表,deptno是部门号
这个查询结果正确。
然后,我本来是这么写的:
select deptno from
(select deptno,avg(sal) from emp group by deptno) t
where t.avg(sal) =
(select max(avg(sal)) from t) ;
就是最后的那部分用t表表示了。
本来以为一样的,结果提示表或视图不存在。
不明白啊o(╯□╰)o
望高手帮帮忙啊。。。。。。。
...全文
133 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xplove1 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 guguda2008 的回复:]
SQL code
select deptno from
(select deptno,avg(sal) from emp group by deptno) t
where t.avg(sal) =
(
--括号里是另一个世界,这里没有T
select max(avg(sal)) from t
) ;
[/Quote]
奥,难不成是这样滴?t视图对那个括弧里的无效?
那既然这么说了,为什么要让它进不去那另外的世界啊?O(∩_∩)O~
guguda2008 2010-04-26
  • 打赏
  • 举报
回复
 select deptno from 
(select deptno,avg(sal) from emp group by deptno) t
where t.avg(sal) =
(
--括号里是另一个世界,这里没有T
select max(avg(sal)) from t
) ;
Garnett_KG 2010-04-26
  • 打赏
  • 举报
回复
嗯。

[Quote=引用 7 楼 htl258 的回复:]

引用 2 楼 garnett_kg 的回复:
SELECT TOP 1 deptno
FROM (
SELECT deptno,avg(sal) as FROM emp
GROUP BY deptno
) tmp
ORDER BY avgsal DESC

你的语句这样改就好了。
[/Quote]
xplove1 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 guguda2008 的回复:]
把那个T理解成局部变量吧,只在同级里可见
[/Quote]
同级就是一个括号里的??
htl258_Tony 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 garnett_kg 的回复:]
SELECT TOP 1 deptno
FROM (
SELECT deptno,avg(sal) as avgsal
FROM emp
GROUP BY deptno
) tmp
ORDER BY avg(sal) DESC

你的语句这样改就好了。
[/Quote]后面不用再avg了吧
a124819202 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xplove1 的回复:]
引用 1 楼 guguda2008 的回复:
就是不能这么写,需要理由吗?

这么写多方便啊,为啥不行尼%>_<%
[/Quote]
口水流的太多了把表或视图冲走了
guguda2008 2010-04-26
  • 打赏
  • 举报
回复
把那个T理解成局部变量吧,只在同级里可见
a124819202 2010-04-26
  • 打赏
  • 举报
回复
xplove1 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 guguda2008 的回复:]
就是不能这么写,需要理由吗?
[/Quote]
这么写多方便啊,为啥不行尼%>_<%
Garnett_KG 2010-04-26
  • 打赏
  • 举报
回复
SELECT TOP 1 deptno
FROM (
SELECT deptno,avg(sal) as avgsal
FROM emp
GROUP BY deptno
) tmp
ORDER BY avg(sal) DESC

你的语句这样改就好了。
guguda2008 2010-04-26
  • 打赏
  • 举报
回复
就是不能这么写,需要理由吗?

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧