Sql 从两个表中获取数据?
我试图从两个不同的表中获取数据,并将其放入on语句中,但它不起作用。这就是我希望得到的完整语句:我希望查询显示dname、loc和人数。我在子查询中遇到问题Sql 从两个表中获取数据?,sql,oracle,oracle10g,sqlplus,Sql,Oracle,Oracle10g,Sqlplus,我试图从两个不同的表中获取数据,并将其放入on语句中,但它不起作用。这就是我希望得到的完整语句:我希望查询显示dname、loc和人数。我在子查询中遇到问题 SQL> select dname, loc from dept where ename in (count(ename) AS Number_of_People from emp); select dname, loc from dept where ename in (count(ename) AS Number_of_Peo
SQL> select dname, loc from dept where ename in (count(ename) AS Number_of_People from emp);
select dname, loc from dept where ename in (count(ename) AS Number_of_People from emp)
*
ERROR at line 1:
ORA-00934: group function is not allowed here
SQL>
表emp
SQL> select empno, ename, job, hiredate, deptno from emp;
EMPNO ENAME JOB HIREDATE DEPTNO
---------- ---------- --------- --------- ----------
7839 KING PRESIDENT 17-NOV-81 10
7698 BLAKE MANAGER 01-MAY-81 30
7782 CLARK MANAGER 09-JUN-81 10
7566 JONES MANAGER 02-APR-81 20
7654 MARTIN SALESMAN 28-SEP-81 30
7499 ALLEN SALESMAN 20-FEB-81 30
7844 TURNER SALESMAN 08-SEP-81 30
7900 JAMES CLERK 03-DEC-81 30
7521 WARD SALESMAN 22-FEB-81 30
7902 FORD ANALYST 03-DEC-81 20
7369 SMITH CLERK 17-DEC-80 20
EMPNO ENAME JOB HIREDATE DEPTNO
---------- ---------- --------- --------- ----------
7788 SCOTT ANALYST 09-DEC-82 20
7876 ADAMS CLERK 12-JAN-83 20
7934 MILLER CLERK 23-JAN-82 10
14 rows selected.
SQL>
餐桌部
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL>
我不确定您想做什么,但突出的是您可能需要在子查询中使用select。尝试:
select dname, loc
from dept
where ename in (select count(ename) AS Number_of_People from emp);
你是不是想达到这样的目标
select dname, loc, (select count(ename) from emp where DEPTNO = dept.deptno) as Number_of_people
from dept;
试试这个
select dept.dname, dept.loc,count(*)
from emp
join dept on emp.deptNo=dept.deptno
group by dept.dname,dept.loc
你怎么知道一个人在哪个部门工作?在您的表中不清楚…SQL>选择dname,从部门中选择loc,从emp中选择countename作为人数;选择dname,loc from dept where ename in select countename AS Number of of_People from emp*第1行错误:ORA-00904:ename:invalid identificateRokay,那么ename是什么以及它在那里做什么?ename是员工的姓名。至于它在那里做什么,我不能100%确定这是否正确,我问的问题是我做错了什么?好的,countcolumn给出了一个数字。ename是一个字符串。试图在数字列表中查找字符串不会得到您想要的结果。你想干什么?