w3resource

SQL Exercise: Search for all grade 4 and 5 as Analysts and Managers

SQL subqueries on employee Database: Exercise-6 with Solution

[An editor is available at the bottom of the page to write and execute the scripts.]

6. From the following table, write a SQL query to find those employees of grade 4 or 5 and who work as ANALYST or MANAGER. Return complete information about the employees.

Sample table: employees


Sample table: salary_grade


Sample Solution:

SELECT *
FROM employees e,
     salary_grade s
WHERE e.salary BETWEEN s.min_sal AND s.max_sal
  AND s.grade IN (4,
                  5)
  AND e.emp_id IN
    (SELECT e.emp_id
     FROM employees e
     WHERE e.job_name IN ('MANAGER',
                          'ANALYST'));

Sample Output:

 emp_id | emp_name | job_name | manager_id | hire_date  | salary  | commission | dep_id | grade | min_sal | max_sal
--------+----------+----------+------------+------------+---------+------------+--------+-------+---------+---------
  66928 | BLAZE    | MANAGER  |      68319 | 1991-05-01 | 2750.00 |            |   3001 |     4 |    2101 |    3100
  67832 | CLARE    | MANAGER  |      68319 | 1991-06-09 | 2550.00 |            |   1001 |     4 |    2101 |    3100
  65646 | JONAS    | MANAGER  |      68319 | 1991-04-02 | 2957.00 |            |   2001 |     4 |    2101 |    3100
  67858 | SCARLET  | ANALYST  |      65646 | 1997-04-19 | 3100.00 |            |   2001 |     4 |    2101 |    3100
  69062 | FRANK    | ANALYST  |      65646 | 1991-12-03 | 3100.00 |            |   2001 |     4 |    2101 |    3100
(5 rows)

Explanation:

The said query in SQL that retrieves information for employees from the tables 'employees' and 'salary_grade' who are either managers or analysts and whose salaries fall within the ranges specified for salary grades 4 or 5.

The WHERE clause includes records in the result set that meets the following conditions:

The employee's salary must be between the minimum and maximum salary of a salary grade 4 or 5.

The employee's job name must be either "MANAGER" or "ANALYST".

The employee's ID must be included in a subquery that selects employee IDs from the 'employees' table based on the same job name condition.

Practice Online


Structure of employee Database:

employee database structure

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous SQL Exercise: List all the employees of grade 2 and 3.
Next SQL Exercise: List the employees whose salary is more than JONAS.

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.