Вы находитесь на странице: 1из 9

SQL> SELECT DEPTNAME FROM DEPT WHERE DEPTID=(SELECT DEPTID FROM EMPLOYEE WHERE L NAME='SHAW' AND FNAME='JINKU'); no rows

selected SQL> SELECT DEPTNAME FROM DEPT WHERE DEPTID=(SELECT DEPTID FROM EMPLOYEE WHERE L NAME='Shaw' AND FNAME='Jinku'); DEPTNAME -------------------Sales SQL> SELECT LNAME||''||FNAME FROM EMPLOYEE WHERE EMPLOYEEID=(SELECT SUPERVISOR F ROM EMPLOYEE WHERE EMPLOYEEID=433); SELECT LNAME||''||FNAME FROM EMPLOYEE WHERE EMPLOYEEID=(SELECT SUPERVISOR FROM E MPLOYEE WHERE EMPLOYEEID=433) * ERROR at line 1: ORA-00904: "EMPLOYEEID": invalid identifier SQL> SELECT LNAME||''||FNAME FROM EMPLOYEE WHERE EMPID=(SELECT SUPERVISOR FROM E MPLOYEE WHERE EMPID=433); LNAME||''||FNAME -------------------DevDerek SQL> SELECT LNAME||' '||FNAME FROM EMPLOYEE WHERE EMPID=(SELECT SUPERVISOR FROM EMPLOYEE WHERE EMPID=433); LNAME||''||FNAME --------------------Dev Derek SQL> SELECT LNAME||' '||FNAME FROM EMPLOYEE WHERE QUALID=(SELECT QUALID FROM EMP LOYEE WHERE LNAME='Garner'); LNAME||''||FNAME --------------------Garner Stanley SQL> SELECT LNAME||' '||FNAME FROM EMPLOYEE WHERE QUALID=(SELECT QUALID FROM EMP LOYEE WHERE LNAME='Garner' AND FNAME='Stanley'); LNAME||''||FNAME --------------------Garner Stanley SQL> SELECT DEPTID FROM EMPLOYEE WHERE COUNT(DEPTID)=(SELECT COUNT(DEPTID) FROM EMPLOYEE WHERE COUNT(DEPTID)>COUNT(DEPTID=20)); SELECT DEPTID FROM EMPLOYEE WHERE COUNT(DEPTID)=(SELECT COUNT(DEPTID) FROM EMPLO YEE WHERE COUNT(DEPTID)>COUNT(DEPTID=20)) * ERROR at line 1: ORA-00934: group function is not allowed here SQL> SELECT DEPTID FROM EMPLOYEE HAVING COUNT(DEPTID=20)<(SELECT COUNT(DEPTID) F ROM EMPLOYEE );

SELECT DEPTID FROM EMPLOYEE HAVING COUNT(DEPTID=20)<(SELECT COUNT(DEPTID) FROM E MPLOYEE ) * ERROR at line 1: ORA-00907: missing right parenthesis SQL> SELECT DEPTID FROM EMPLOYEE HAVING COUNT(DEPTID=20)<(SELECT COUNT(DEPTID) F ROM EMPLOYEE); SELECT DEPTID FROM EMPLOYEE HAVING COUNT(DEPTID=20)<(SELECT COUNT(DEPTID) FROM E MPLOYEE) * ERROR at line 1: ORA-00907: missing right parenthesis SQL> SELECT DEPTID FROM EMPLOYEE HAVING COUNT(DEPTID=20)<(SELECT COUNT(DEPTID) F ROM EMPLOYEE)); SELECT DEPTID FROM EMPLOYEE HAVING COUNT(DEPTID=20)<(SELECT COUNT(DEPTID) FROM E MPLOYEE)) * ERROR at line 1: ORA-00907: missing right parenthesis SQL> SELECT DEPTID FROM EMPLOYEE HAVING COUNT(DEPTID=20)<(SELECT COUNT(DEPTID) F ROM EMPLOYEE); SELECT DEPTID FROM EMPLOYEE HAVING COUNT(DEPTID=20)<(SELECT COUNT(DEPTID) FROM E MPLOYEE) * ERROR at line 1: ORA-00907: missing right parenthesis SQL> SELECT DEPTID FROM EMPLOYEE GROUP BY DEPTID HAVING COUNT(DEPTID)<(SELECT CO UNT(DEPTID) FROM EMPLOYEE GROUP BY DEPTID HAVING COUNT(DEPTID=20)); SELECT DEPTID FROM EMPLOYEE GROUP BY DEPTID HAVING COUNT(DEPTID)<(SELECT COUNT(D EPTID) FROM EMPLOYEE GROUP BY DEPTID HAVING COUNT(DEPTID=20)) * ERROR at line 1: ORA-00907: missing right parenthesis SQL> SELECT DEPTID FROM EMPLOYEE GROUP BY DEPTID HAVING COUNT(DEPTID)>(SELECT CO UNT(DEPTID) FROM EMPLOYEE WHERE DEPTID=20); DEPTID ---------10 SQL> SELECT LNAME||' '||FNAME FROM EMPLOYEE GROUP BY DEPTID HAVING COUNT(DEPTID )>(SELECT COUNT(DEPTID) FROM EMPLOYEE WHERE DEPTID=20); SELECT LNAME||' '||FNAME FROM EMPLOYEE GROUP BY DEPTID HAVING COUNT(DEPTID)>(SE LECT COUNT(DEPTID) FROM EMPLOYEE WHERE DEPTID=20) * ERROR at line 1: ORA-00979: not a GROUP BY expression

SQL> SELECT DEPTNAME FROM EMPLOYEE GROUP BY DEPTID HAVING COUNT(DEPTID)>(SELECT COUNT(DEPTID) FROM EMPLOYEE WHERE DEPTID=20); SELECT DEPTNAME FROM EMPLOYEE GROUP BY DEPTID HAVING COUNT(DEPTID)>(SELECT COUNT (DEPTID) FROM EMPLOYEE WHERE DEPTID=20) * ERROR at line 1: ORA-00904: "DEPTNAME": invalid identifier SQL> SELECT DEPTNAME FROM DEPT WHERE DEPTID=(SELECT DEPTID FROM EMPLOYEE GROUP B Y DEPTID HAVING COUNT(DEPTID)>(SELECT COUNT(DEPTID) FROM EMPLOYEE WHERE DEPTID=2 0)); DEPTNAME -------------------Finance SQL> SELECT DEPTNAME,DEPTID FROM DEPT WHERE DEPTID=(SELECT DEPTID FROM EMPLOYEE GROUP BY DEPTID HAVING COUNT(DEPTID)>(SELECT COUNT(DEPTID) FROM EMPLOYEE WHERE D EPTID=20)); DEPTNAME DEPTID -------------------- ---------Finance 10 SQL> SELECT LNAME||' '||FNAME FROM EMPLOYEE E1 WHERE QUALID=(SELECT QUALID FROM EMPLOYEE E2 WHERE LNAME='Garner' AND FNAME='Stanley'); LNAME||''||FNAME --------------------Garner Stanley SQL> SELECT LNAME||' '||FNAME FROM EMPLOYEE E1 WHERE QUALID=(SELECT QUALID FROM EMPLOYEE E2 WHERE E2.LNAME='Garner' AND E2.FNAME='Stanley'); LNAME||''||FNAME --------------------Garner Stanley SQL> SELECT LNAME||' '||FNAME FROM EMPLOYEE E1 WHERE QUALID=(SELECT QUALID FROM EMPLOYEE E2 WHERE E1.LNAME='Garner' AND E1.FNAME='Stanley'); SELECT LNAME||' '||FNAME FROM EMPLOYEE E1 WHERE QUALID=(SELECT QUALID FROM EMPLO YEE E2 WHERE E1.LNAME='Garner' AND E1.FNAME='Stanley') * ERROR at line 1: ORA-01427: single-row subquery returns more than one row SQL> SELECT LNAME||' '||FNAME FROM EMPLOYEE E1 WHERE QUALID=(SELECT QUALID FROM EMPLOYEE E2 WHERE LNAME='Garner' AND FNAME='Roberts'); no rows selected SQL> SELECT LNAME||' '||FNAME FROM EMPLOYEE E1 WHERE QUALID=(SELECT QUALID FROM EMPLOYEE E2 WHERE LNAME='Garner' AND FNAME='Stanley' AND E1.EMPID!=E2.EMPID); no rows selected SQL> SELECT FNAME||' '||LNAME FROM EMPLOYEE WHERE EXTRACT(YEAR FROM HIREDATE)<(S ELECT EXTRACT(YEAR FROM HIREDATE) FROM EMPLOYEE WHERE LNAME='Houston' AND FNAME=

'Larry'); FNAME||''||LNAME --------------------John Smith SQL> SELECT FNAME||' '||LNAME FROM EMPLOYEE WHERE HIREDATE<(SELECT HIREDATE FROM EMPLOYEE WHERE LNAME='Houston' AND FNAME='Larry'); FNAME||''||LNAME --------------------John Smith SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE WHERE DEPTID=(SEL ECT DEPTID FROM DEPT WHERE DEPTNAME='Sales'); EMPLOYEE NAME --------------------Garner Stanley Shaw Jinku SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE WHERE DEPTID=(SEL ECT DEPTID FROM DEPT(SELECT DEPTNAME='Sales')); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE WHERE DEPTID=(SELECT D EPTID FROM DEPT(SELECT DEPTNAME='Sales')) * ERROR at line 1: ORA-00907: missing right parenthesis SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE WHERE DEPTID=(SEL ECT DEPTID FROM DEPT WHERE SELECT DEPTNAME='Sales'); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE WHERE DEPTID=(SELECT D EPTID FROM DEPT WHERE SELECT DEPTNAME='Sales') * ERROR at line 1: ORA-00936: missing expression SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE WHERE DEPTID=(SEL ECT DEPTID FROM DEPT WHERE DEPTNAME='Sales'); EMPLOYEE NAME --------------------Garner Stanley Shaw Jinku SQL> CREATE TABLE EMP30(EMPID,LNAME,FNAME,HIREDATE,SALARY) AS SELECT EMPID,LNAME ,FNAME,HIREDATE,SALARY FROM EMPLOYEE; Table created. SQL> DROP TABLE EMP30; Table dropped. SQL> CREATE TABLE EMP30(EMPID,LNAME,FNAME,HIREDATE,SALARY) AS SELECT EMPID,LNAME ,FNAME,HIREDATE,SALARY FROM EMPLOYEE WHERE EMPID=30;

Table created. SQL> DROP TABLE EMP30; Table dropped. SQL> CREATE TABLE EMP30(EMPID,LNAME,FNAME,HIREDATE,SALARY) AS SELECT EMPID,LNAME ,FNAME,HIREDATE,SALARY FROM EMPLOYEE WHERE DEPTID=30; Table created. SQL> INSERT INTO EMP30 SELECT EMPID,LNAME,FNAME,HIREDATE FROM EMPLOYEE WHERE DEP TID=40; INSERT INTO EMP30 SELECT EMPID,LNAME,FNAME,HIREDATE FROM EMPLOYEE WHERE DEPTID=4 0 * ERROR at line 1: ORA-00947: not enough values SQL> INSERT INTO EMP30(EMPID,LNAME,FNAME,HIREDATE) SELECT EMPID,LNAME,FNAME,HIRE DATE FROM EMPLOYEE WHERE DEPTID=40; 1 row created. SQL> SELECT * FROM EMP30 2 SELECT * FROM EMP30; SELECT * FROM EMP30 * ERROR at line 2: ORA-00933: SQL command not properly ended SQL> SELECT * FROM EMP30; EMPID ---------135 200 246 LNAME ---------Garner Shaw Houston FNAME ---------Stanley Jinku Larry HIREDATE SALARY --------- ---------29-FEB-96 45000 03-JAN-00 24500 19-MAY-67

SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME",DEPTID FROM EMPLOYEE E1 WHERE S ALARY=(SELECT MIN(SALARY) FROM EMPLOYEE E2 GROUP BY DEPTID); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME",DEPTID FROM EMPLOYEE E1 WHERE SALARY =(SELECT MIN(SALARY) FROM EMPLOYEE E2 GROUP BY DEPTID) * ERROR at line 1: ORA-01427: single-row subquery returns more than one row SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME",DEPTID FROM EMPLOYEE WHERE SALA RY=(SELECT MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME",DEPTID FROM EMPLOYEE WHERE SALARY=(S ELECT MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID) * ERROR at line 1: ORA-01427: single-row subquery returns more than one row

SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME",DEPTID FROM EMPLOYEE GROUP BY D EPTID WHERE SALARY=(SELECT MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME",DEPTID FROM EMPLOYEE GROUP BY DEPTID WHERE SALARY=(SELECT MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID) * ERROR at line 1: ORA-00933: SQL command not properly ended SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME",DEPTID FROM EMPLOYEE E1 GROUP B Y DEPTID WHERE SALARY=(SELECT SALARY FROM EMPLOYEE E2 WHERE E1.SALARY=E2.MIN(SAL ARY) FROM EMPLOYEE GROUP BY DEPTID); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME",DEPTID FROM EMPLOYEE E1 GROUP BY DEP TID WHERE SALARY=(SELECT SALARY FROM EMPLOYEE E2 WHERE E1.SALARY=E2.MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID) * ERROR at line 1: ORA-00933: SQL command not properly ended SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME",FROM EMPLOYEE E1 GROUP BY DEPTI D WHERE SALARY=(SELECT SALARY FROM EMPLOYEE E2 WHERE E1.SALARY=E2.MIN(SALARY) FR OM EMPLOYEE GROUP BY DEPTID); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME",FROM EMPLOYEE E1 GROUP BY DEPTID WHE RE SALARY=(SELECT SALARY FROM EMPLOYEE E2 WHERE E1.SALARY=E2.MIN(SALARY) FROM EM PLOYEE GROUP BY DEPTID) * ERROR at line 1: ORA-00936: missing expression SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE E1 GROUP BY DEPTI D WHERE SALARY=(SELECT SALARY FROM EMPLOYEE E2 WHERE E1.SALARY=E2.MIN(SALARY) FR OM EMPLOYEE GROUP BY DEPTID); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE E1 GROUP BY DEPTID WHE RE SALARY=(SELECT SALARY FROM EMPLOYEE E2 WHERE E1.SALARY=E2.MIN(SALARY) FROM EM PLOYEE GROUP BY DEPTID) * ERROR at line 1: ORA-00933: SQL command not properly ended SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE E1 WHERE SALARY=( SELECT SALARY FROM EMPLOYEE E2 WHERE E1.SALARY=E2.MIN(SALARY) FROM EMPLOYEE GROU P BY DEPTID); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE E1 WHERE SALARY=(SELEC T SALARY FROM EMPLOYEE E2 WHERE E1.SALARY=E2.MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID) * ERROR at line 1: ORA-00907: missing right parenthesis SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE WHERE SALARY=(SEL ECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID) ;

SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE WHERE SALARY=(SELECT S ALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID) * ERROR at line 1: ORA-00934: group function is not allowed here SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE GROUP BY DEPTID W HERE SALARY=(SELECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE GROUP BY DEPTID WHERE SALARY=(SELECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID) * ERROR at line 1: ORA-00933: SQL command not properly ended SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE GROUP BY DEPTID W HERE SALARY=(SELECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE ); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE GROUP BY DEPTID WHERE SALARY=(SELECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE ) * ERROR at line 1: ORA-00933: SQL command not properly ended SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE GROUP BY DEPTID W HERE SALARY=(SELECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE GROUP BY DEPTID WHERE SALARY=(SELECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID) * ERROR at line 1: ORA-00933: SQL command not properly ended SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE WHERE SALARY=(SEL ECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID) ; SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE WHERE SALARY=(SELECT S ALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID) * ERROR at line 1: ORA-00934: group function is not allowed here SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE HAVING SALARY=(SE LECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID ); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE HAVING SALARY=(SELECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID) * ERROR at line 1: ORA-00907: missing right parenthesis

SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE HAVING SALARY=(SE LECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY FROM EMPLOYEE GROUP BY DEPTID) ); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE HAVING SALARY=(SELECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY FROM EMPLOYEE GROUP BY DEPTID)) * ERROR at line 1: ORA-00907: missing right parenthesis SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE HAVING SALARY=(SE LECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID ); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE HAVING SALARY=(SELECT SALARY FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID) * ERROR at line 1: ORA-00907: missing right parenthesis SQL> SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE WHERE EMPID=(SELE CT EMPID FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID); SELECT LNAME||' '||FNAME AS "EMPLOYEE NAME" FROM EMPLOYEE WHERE EMPID=(SELECT EM PID FROM EMPLOYEE WHERE SALARY=MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID) * ERROR at line 1: ORA-00934: group function is not allowed here SQL> SELECT DEPTID,MIN(SALARY) FROM EMPLOYEE GROUP BY DEPTID; DEPTID MIN(SALARY) ---------- ----------30 24500 20 66500 40 150000 10 35000 SQL> SELECT DEPTID,LNAME||' '||FNAME AS "EMPLOYEE NAME",MIN(SALARY) FROM EMPLOYE E GROUP BY DEPTID; SELECT DEPTID,LNAME||' '||FNAME AS "EMPLOYEE NAME",MIN(SALARY) FROM EMPLOYEE GRO UP BY DEPTID * ERROR at line 1: ORA-00979: not a GROUP BY expression SQL> SELECT DEPTID,LNAME||' '||FNAME AS "EMPLOYEE NAME",MIN(SALARY) FROM EMPLOYE E GROUP BY DEPTID; SELECT DEPTID,LNAME||' '||FNAME AS "EMPLOYEE NAME",MIN(SALARY) FROM EMPLOYEE GRO UP BY DEPTID * ERROR at line 1: ORA-00979: not a GROUP BY expression

SQL> SELECT DEPTID,LNAME||' '||FNAME AS "EMPLOYEE NAME",MIN(SALARY) FROM EMPLOYE E GROUP BY DEPTID; SELECT DEPTID,LNAME||' '||FNAME AS "EMPLOYEE NAME",MIN(SALARY) FROM EMPLOYEE GRO UP BY DEPTID * ERROR at line 1: ORA-00979: not a GROUP BY expression SQL> COMMIT; Commit complete. SQL> SPOOL OFF

Вам также может понравиться