Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从两个表中获取数据?_Sql_Oracle_Oracle10g_Sqlplus - Fatal编程技术网

Sql 从两个表中获取数据?

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

我试图从两个不同的表中获取数据,并将其放入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_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是一个字符串。试图在数字列表中查找字符串不会得到您想要的结果。你想干什么?