2017-09-18 1 views
0

私は「私が各部署に 正しい数を取得するように見えるだけ 「DALLAS」これはQUESTIONJOINとCountingを使用せずにデータを表示する方法従業員数?

にIS

を除くだけでなく、最高のものを選択することはできません。この問題でトラブルを抱えています 従業員の数が最も多い(ダラスにある部門を除く)すべての部門 の名前と場所を表示するためにSQL文を書く。

あなたのSQL文で結合操作を使用することはできません(例えば、...部門の、 e mployee WHERE ...、部門INNER JOIN従業員ON ...)。 "最大カウントを持つ部門を検索し、使用しなくても対応する名前と場所を取得しようと

DEPARTMENT_ID DEPARTMENT_NAME  LOCATION   
------------- -------------------- -------------------- 
      10 ACCOUNTING   NEW YORK    
      20 RESEARCH    DALLAS    
      30 SALES    CHICAGO    
      40 IT     DALLAS    
      50 EXECUTIVE   NEW YORK    
      60 MARKETING   CHICAGO    

6 rows selected 

EMPLOYEE_ID EMPLOYEE_NAME  JOB_TITLE           SUPERVISOR_ID HIRE_DATE  SALARY COMMISSION DEPARTMENT_ID 
----------- -------------------- -------------------------------------------------- ------------- --------- ---------- ---------- ------------- 
     7839 KING     PRESIDENT              20-NOV-01  5000      50 
     7596 JOST     VICE PRESIDENT            7839 04-MAY-01  4500      50 
     7603 CLARK    VICE PRESIDENT            7839 12-JUN-01  4000      50 
     7566 JONES    CHIEF ACCOUNTANT           7596 05-APR-01  3000      10 
     7886 STEEL    PUBLIC ACCOUNTANT           7566 08-MAR-03  2500      10 
     7610 WILSON    BUSINESS ANALYST           7596 03-DEC-01  3000      20 
     7999 WOLFE    TEST ANALYST            7610 15-FEB-02  2500      20 
     7944 LEE     REPORTING ANALYST           7610 04-SEP-06  2400      20 
     7900 FISHER    SALES EXECUTIVE            7603 06-DEC-01  3000  500   30 
     7921 JACKSON    SALES REPRESENTATIVE          7900 25-FEB-05  2500  400   30 
     7952 LANCASTER   SALES CONSULTANT           7900 06-DEC-06  2000  150   30 
     7910 SMITH    DATABASE ADMINISTRATOR          7596 20-DEC-01  2900      40 
     7788 SCOTT    PROGRAMMER             7910 15-JAN-03  2500      40 
     7876 ADAMS    PROGRAMMER             7910 15-JAN-03  2000      40 
     7934 MILLER    PROGRAMMER             7876 25-JAN-02  1000      40 
     8000 BREWSTER    TBA                22-AUG-13  2500       
     8100 PHILLIPS    TBA               7839 21-AUG-13  2800       
     7400 SMITH    VICE PRESIDENT            7839 16-FEB-01  4300      50 
     7700 ANDRUS    PUBLIC ACCOUNTANT           7566 18-FEB-02  2500      10 
     7601 SAMPSON    PROGRAMMER             7910 09-JAN-01  2500      40 
     7588 DODSON    TEST ANALYST            7610 02-AUG-08  2500      20 
     7888 SANDY    SALES CONSULTANT           7900 05-AUG-04  2500      30 

22 rows selected 





SELECT DEPARTMENT_NAME, 
      location, 
      count(*) 

    FROM DEPARTMENT 
    WHERE department_id IN ( SELECT  department_id 
           FROM  department 
           WHERE  UPPER(location) <> 'DALLAS' 
          ) 

    group by department_NAME, location 
    ORDER BY location; 



DEPARTMENT_NAME  LOCATION    COUNT(*) 
-------------------- -------------------- ---------- 
MARKETING   CHICAGO      1 
SALES    CHICAGO      1 
ACCOUNTING   NEW YORK      1 
EXECUTIVE   NEW YORK      1 

答えて

0

アムは

SELECT (SELECT DEPARTMENT_NAME, location 
      FROM DEPARTMENT 
      WHERE department_id = q.department_id) , 
      q.ct countofdept 
    FROM 
      (SELECT count(*) ct, department_id 
       FROM EMPLOYEE 
      WHERE department_id in ( SELECT  department_id 
              FROM  department 
              WHERE  UPPER(location) <> 'DALLAS' 
             ) 
      GROUP BY department_id 
      ORDER BY ct desc 
      LIMIT 1) q 
1
あなたが参加し使用していないに限定されている場合は、サブクエリを使用して試すことができます

に参加します

SELECT * 
    FROM (SELECT d.department_name, 
       d.location, 
       (SELECT COUNT(employee_id) 
        FROM employee e 
       WHERE e.department_id = d.department_id) no_employees 
      FROM department d 
     WHERE d.location <> 'DALLAS'   
     ) t 
WHERE no_employees = (SELECT COUNT(employee_id) 
         FROM employee 
         WHERE department_id IN (SELECT DISTINCT department_id 
               FROM department 
               WHERE location <> 'DALLAS') 
         GROUP BY department_id 
         ORDER BY 1 DESC 
         LIMIT 1) 

結果

department_name location no_employees 
SALES   CHICAGO  4 
EXECUTIVE  NEW YORK 4 
+0

エラーが表示されます。エラー・レポート - SQLエラー:ORA-00907:右かっこがありません 00907. 00000 - "右括弧がありません"。私は1つを追加しようとし、まだ動作しませんでした。セミコロンで終わらせました。まだエラーが発生しています。 –

+0

あなたはoracleを使用していますか? –

+0

私はSQLの開発者を使用していました –

関連する問題