w3resource

SQL Exercise: List SALESMAN who are earning maximum net salary

SQL subqueries on employee Database: Exercise-56 with Solution

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

56. From the following table, write a SQL query to find those employees who get a commission percent and works as a SALESMAN and earn maximum net salary. Return department ID, name, designation, salary, and net salary (salary+ commission).


Sample Solution:

SELECT dep_id,
       emp_name,
       job_name,
       salary,
       salary+commission "Net Salary"
FROM employees
WHERE job_name = 'SALESMAN'
  AND salary+commission IN
    (SELECT max(salary+commission)
     FROM employees
     WHERE commission IS NOT NULL);

Sample Output:

 dep_id | emp_name | job_name | salary  | Net Salary
--------+----------+----------+---------+------------
   3001 | MADDEN   | SALESMAN | 1350.00 |    2850.00
(1 row)

Explanation:

The given query in SQL that selects the department ID, employee name, job title, salary, and net salary of employees who are salesmen and have the highest net salary among all employees with a non-null commission.

The WHERE clause filters the results only those rows where the job_name is "SALESMAN" and the salary+commission is equal to the maximum salary+commission among all employees with a non-null commission obtained from a subquery.

The subquery in the WHERE clause selects the maximum salary+commission from employees with a non-null commission.

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 employees not in the department 1001 but in 3001.
Next SQL Exercise: Employees who get commissions, second highest salary.

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.