w3resource

SQL Exercise: Find employees who is working except given departments


20. From the following table, write a SQL query to find those employees work in the departments that are not part of the department 50 or 30 or 80. Return employee_id, first_name,job_id, department_id.

Sample table: employees
+-------------+-------------+-------------+----------+--------------------+------------+------------+----------+----------------+------------+---------------+
| EMPLOYEE_ID | FIRST_NAME  | LAST_NAME   | EMAIL    | PHONE_NUMBER       | HIRE_DATE  | JOB_ID     | SALARY   | COMMISSION_PCT | MANAGER_ID | DEPARTMENT_ID |
+-------------+-------------+-------------+----------+--------------------+------------+------------+----------+----------------+------------+---------------+
|         100 | Steven      | King        | SKING    | 515.123.4567       | 2003-06-17 | AD_PRES    | 24000.00 |           0.00 |          0 |            90 |
|         101 | Neena       | Kochhar     | NKOCHHAR | 515.123.4568       | 2005-09-21 | AD_VP      | 17000.00 |           0.00 |        100 |            90 |
|         102 | Lex         | De Haan     | LDEHAAN  | 515.123.4569       | 2001-01-13 | AD_VP      | 17000.00 |           0.00 |        100 |            90 |
|         103 | Alexander   | Hunold      | AHUNOLD  | 590.423.4567       | 2006-01-03 | IT_PROG    |  9000.00 |           0.00 |        102 |            60 |
|         104 | Bruce       | Ernst       | BERNST   | 590.423.4568       | 2007-05-21 | IT_PROG    |  6000.00 |           0.00 |        103 |            60 |
|         105 | David       | Austin      | DAUSTIN  | 590.423.4569       | 2005-06-25 | IT_PROG    |  4800.00 |           0.00 |        103 |            60 |
|         106 | Valli       | Pataballa   | VPATABAL | 590.423.4560       | 2006-02-05 | IT_PROG    |  4800.00 |           0.00 |        103 |            60 |
|         107 | Diana       | Lorentz     | DLORENTZ | 590.423.5567       | 2007-02-07 | IT_PROG    |  4200.00 |           0.00 |        103 |            60 |
|         108 | Nancy       | Greenberg   | NGREENBE | 515.124.4569       | 2002-08-17 | FI_MGR     | 12008.00 |           0.00 |        101 |           100 |
|         109 | Daniel      | Faviet      | DFAVIET  | 515.124.4169       | 2002-08-16 | FI_ACCOUNT |  9000.00 |           0.00 |        108 |           100 |
......
|         206 | William     | Gietz       | WGIETZ   | 515.123.8181       | 2002-06-07 | AC_ACCOUNT |  8300.00 |           0.00 |        205 |           110 |
+-------------+-------------+-------------+----------+--------------------+------------+------------+----------+----------------+------------+---------------+

View the table

Sample Solution:

-- Selecting 'employee_id', 'first_name', 'job_id', and 'department_id' columns from the 'employees' table
SELECT employee_id, first_name, job_id, department_id
-- Specifying the table to retrieve data from ('employees')
FROM employees
-- Filtering the results based on the condition that 'department_id' is not in (50, 30, 80)
WHERE department_id NOT IN (50, 30, 80);

Sample Output:

 employee_id | first_name  |   job_id   | department_id
-------------+-------------+------------+---------------
         100 | Steven      | AD_PRES    |            90
         101 | Neena       | AD_VP      |            90
         102 | Lex         | AD_VP      |            90
         103 | Alexander   | IT_PROG    |            60
         104 | Bruce       | IT_PROG    |            60
         105 | David       | IT_PROG    |            60
         106 | Valli       | IT_PROG    |            60
         107 | Diana       | IT_PROG    |            60
         108 | Nancy       | FI_MGR     |           100
         109 | Daniel      | FI_ACCOUNT |           100
         110 | John        | FI_ACCOUNT |           100
         111 | Ismael      | FI_ACCOUNT |           100
         112 | Jose Manuel | FI_ACCOUNT |           100
         113 | Luis        | FI_ACCOUNT |           100
         178 | Kimberely   | SA_REP     |             0
         200 | Jennifer    | AD_ASST    |            10
         201 | Michael     | MK_MAN     |            20
         202 | Pat         | MK_REP     |            20
         203 | Susan       | HR_REP     |            40
         204 | Hermann     | PR_REP     |            70
         205 | Shelley     | AC_MGR     |           110
         206 | William     | AC_ACCOUNT |           110
(22 rows)

Code Explanation:

The said query in SQL that retrieves "employee_id", "first_name", "job_id", and "department_id" from a table named 'employees'. The query returns only the rows where the "department_id" is not equal to 50, 30, or 80.

Relational Algebra Expression:

Relational Algebra Expression: Display  the employee ID, first name, job id, and department number for those employees who is working except the departments 50,30 and 80.


Relational Algebra Tree:

Relational Algebra Tree: Display  the employee ID, first name, job id, and department number for those employees who is working except the departments 50,30 and 80.


Go to:


PREV : Employees with s as their 3rd character in first name.
NEXT : Find employees who is working given departments.


Practice Online



HR database model.


Query Visualization:

Duration:

Query visualization of Display the employee ID, first name, job id, and department number for those employees who is working except the departments 50,30 and 80 - Duration.


Rows:

Query visualization of Display the employee ID, first name, job id, and department number for those employees who is working except the departments 50,30 and 80 - Rows.


Cost:

Query visualization of Display the employee ID, first name, job id, and department number for those employees who is working except the departments 50,30 and 80 - Cost.


Contribute your code and comments through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.