日期:2014-05-17  浏览次数:21250 次

多个表的group by错误
这是一个题目 现在有两个表 职工表 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 表达式 错误 不能通过 新手请 大家指教

------解决方案--------------------
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,employee.sex,count(*)as count_eno from employee,dept
where dept.dno=employee.dno group by dept.dno,dept.dname,employee.sex

------解决方案--------------------

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 ;