w3resource

SQLite Exercise: Display the last name, job, and salary for all employees whose job is that of a Programmer or a Shipping Clerk, and whose salary is not equal to $4,500, $10,000, or $15,000

Write a query to display the last name, job, and salary for all employees whose job is that of a Programmer or a Shipping Clerk, and whose salary is not equal to $4,500, $10,000, or $15,000.

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       | 1987-06-17 | AD_PRES    | 24000.00 |           0.00 |          0 | 		  90 |
|         101 | Neena       | Kochhar     | NKOCHHAR | 515.123.4568       | 1987-06-18 | AD_VP      | 17000.00 |           0.00 |        100 |            90 |
|         102 | Lex         | De Haan     | LDEHAAN  | 515.123.4569       | 1987-06-19 | AD_VP      | 17000.00 |           0.00 |        100 |            90 |
|         103 | Alexander   | Hunold      | AHUNOLD  | 590.423.4567       | 1987-06-20 | IT_PROG    |  9000.00 |           0.00 |        102 |            60 |
|         104 | Bruce       | Ernst       | BERNST   | 590.423.4568       | 1987-06-21 | IT_PROG    |  6000.00 |           0.00 |        103 |            60 |
|         105 | David       | Austin      | DAUSTIN  | 590.423.4569       | 1987-06-22 | IT_PROG    |  4800.00 |           0.00 |        103 |            60 |
|         106 | Valli       | Pataballa   | VPATABAL | 590.423.4560       | 1987-06-23 | IT_PROG    |  4800.00 |           0.00 |        103 |            60 |
|         107 | Diana       | Lorentz     | DLORENTZ | 590.423.5567       | 1987-06-24 | IT_PROG    |  4200.00 |           0.00 |        103 |            60 |
|         108 | Nancy       | Greenberg   | NGREENBE | 515.124.4569       | 1987-06-25 | FI_MGR     | 12000.00 |           0.00 |        101 |           100 |
|         109 | Daniel      | Faviet      | DFAVIET  | 515.124.4169       | 1987-06-26 | FI_ACCOUNT |  9000.00 |           0.00 |        108 |           100 |
...........
|         206 | William     | Gietz       | WGIETZ   | 515.123.8181       | 1987-10-01 | AC_ACCOUNT |  8300.00 |           0.00 |        205 |           110 |
+-------------+-------------+-------------+----------+--------------------+------------+------------+----------+----------------+------------+---------------+

View the table

SQLite Code :

-- Selecting the "last_name," "job_id," and "salary" columns
SELECT last_name, job_id, salary
-- Specifying the table from which to retrieve the data, in this case, "employees"
FROM employees
-- Filtering the results to include only rows where the "job_id" is either 'IT_PROG' or 'SH_CLERK'
-- and the "salary" is not 4500, 10000, or 15000
WHERE job_id IN ('IT_PROG', 'SH_CLERK')
AND salary NOT IN (4500, 10000, 15000);

Output:

last_name   job_id      salary
----------  ----------  ----------
Hunold      IT_PROG     9000
Ernst       IT_PROG     6000
Austin      IT_PROG     4800
Pataballa   IT_PROG     4800
Lorentz     IT_PROG     4200
...			...			...
Jones       SH_CLERK    2800
Walsh       SH_CLERK    3100
Feeney      SH_CLERK    3000
OConnell    SH_CLERK    2600
Grant       SH_CLERK    2600

Explanation:

The above SQLite query retrieves the last name, job ID, and salary columns from the "employees" table, but only includes rows where the job is either 'IT_PROG' or 'SH_CLERK', and the salary is not 4500, 10000, or 15000.

Here's a brief explanation of each part of SQLite code:

  • SELECT clause:
    • It selects the "last_name," "job_id," and "salary" columns from the "employees" table.
  • FROM clause:
    • Specifies the table from which to retrieve the data, in this case, the "employees" table.
  • WHERE clause:
    • Filters the results to include only rows where the "job_id" is either 'IT_PROG' or 'SH_CLERK'.
    • Additionally, it includes only rows where the "salary" is not 4500, 10000, or 15000.

Relational Algebra Expression:

Relational Algebra Expression: Display the last name, job, and salary for all employees whose job is that of a Programmer or a Shipping Clerk, and whose salary is not equal to $4,500, $10,000, or $15,000.


Relational Algebra Tree:

Relational Algebra Tree: Display the last name, job, and salary for all employees whose job is that of a Programmer or a Shipping Clerk, and whose salary is not equal to $4,500, $10,000, or $15,000.


Go to:


PREV : Write a query to display the first_name of all employees who have both an "b" and "c" in their first name.
NEXT : Write a query to display the last names of employees whose names have exactly 6 characters.

Practice SQLite Online


Model Database

Employee Model  Database - w3resource online SQLite practice

Structure of 'hr' database :

hr database


Improve this sample solution and post your code through Disqus.

What is the difficulty level of this exercise?



Follow us on Facebook and Twitter for latest update.