多个表的group by错误

破碎的瓦片 2011-10-10 08:47:35
这是一个题目 现在有两个表 职工表 employee(ENO,ENAME,AGE,SEX,SALARY,DNO)
部门表 dept(dno,dname,ma_no)
现在需要查询 每个部门男女职工的人数 用一个select语句 显示(dno,dname,sex,conut_eno)
我写了一个select语句
select dept.dno,dept.dname,employee.sex,count(*)as count_eno from employee,dept
where dept.dno=employee.dno group by employee.sex,dept.dno
显示是group by 表达式 错误 不能通过 新手请 大家指教
...全文
233 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjiwliuxin888 2011-10-18
  • 打赏
  • 举报
回复
ddddddddddddddddddddd
kingtest8 2011-10-18
  • 打赏
  • 举报
回复

为什么通不过CHECK?
dname不加的话,使得dname有多个值了,所以不过了
jiangsu33330 2011-10-18
  • 打赏
  • 举报
回复
路过学习
习惯孤独 2011-10-17
  • 打赏
  • 举报
回复
我以前也遇到过这样的问题,过来学习下,
梦雨奇缘 2011-10-17
  • 打赏
  • 举报
回复
呵呵...这个问题很简单,但对初学者来说,还是长知识了.
guomingbing90 2011-10-15
  • 打赏
  • 举报
回复
路过 并学习了一下
「已注销」 2011-10-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 litianci2002 的回复:]

用group by 必须把select 后面选择的字段,全部加到group by后面(一些统计,计算函数除外,如sum,count),而且不能用别名。。。
[/Quote]

就是这样的。
SKY_4K_PPM 2011-10-15
  • 打赏
  • 举报
回复
select dept.dno,dept.dname,employee.sex,count(*)as count_eno
from employee,dept
where dept.dno=employee.dno
group by employee.sex,dept.dno,dept.dname
使用了聚簇函数的分组的时候,要在select 列表中 包含所有的分组。
xiaoyu871225 2011-10-14
  • 打赏
  • 举报
回复
正解
[Quote=引用 2 楼 hao1hao2hao3 的回复:]
SQL code


select dept.dno,dept.dname,employee.sex,count(*)as count_eno from employee,dept
where dept.dno=employee.dno group by employee.sex,dept.dno

如果要这样写就应该是:

select dept.dno,dept.dname,e……
[/Quote]
szc108 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hao1hao2hao3 的回复:]
SQL code

select dept.dno,dept.dname,employee.sex,count(*)as count_eno from employee,dept
where dept.dno=employee.dno group by employee.sex,dept.dno

如果要这样写就应该是:

select dept.dno,dept.dname,emp……
[/Quote]

+1
memory1007 2011-10-13
  • 打赏
  • 举报
回复
2楼 +1
litianci2002 2011-10-11
  • 打赏
  • 举报
回复
用group by 必须把select 后面选择的字段,全部加到group by后面(一些统计,计算函数除外,如sum,count),而且不能用别名。。。
hao1hao2hao3 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gaojiaweir0011 的回复:]
是的 成功了 谢了!
为什么要加上 dname呢?
[/Quote]

看Group By 的联机帮助。。
破碎的瓦片 2011-10-10
  • 打赏
  • 举报
回复
是的 成功了 谢了!
为什么要加上 dname呢?
NLP爱好者 2011-10-10
  • 打赏
  • 举报
回复

select b.DNO,
b.dname,
t.SEX,
count(distinct t.ENO) as count_eno
from employee t ,
dept b
where t.DNO = b.DNO
group by t.sex,b.dno,b.dname
order by b.dno,t.sex ;
hao1hao2hao3 2011-10-10
  • 打赏
  • 举报
回复

select dept.dno,dept.dname,employee.sex,count(*)as count_eno from employee,dept
where dept.dno=employee.dno group by employee.sex,dept.dno

如果要这样写就应该是:

select dept.dno,dept.dname,employee.sex,count(*)as count_eno from employee,dept
where dept.dno=employee.dno group by dept.dno,dept.dname,employee.sex




破碎的瓦片 2011-10-10
  • 打赏
  • 举报
回复
请大家帮忙啊!

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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