Bono de empleados

Escribe una solución para reportar el nombre y el bono de cada empleado con bono menor a 1000. Regresa el resultado en cualquier orden.

#database#basic-joins

Tabla: Employee

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| empId       | int     |
| name        | varchar |
| supervisor  | int     |
| salary      | int     |
+-------------+---------+

- empId es una columna con valores únicos.
- Cada fila indica el nombre, el ID del empleado, su salario, y el ID de su gerente.

Tabla: Bonus

+-------------+------+
| Column Name | Type |
+-------------+------+
| empId       | int  |
| bonus       | int  |
+-------------+------+

- empId es una columna con valores únicos.
- empId es una llave foranea (columna de referencia) hacia el empId de la tabla Employee.
- Cada fila contiene el ID de un empleado y su respectivo bono.

El formato del resultado se muestra en el siguiente ejemplo.

Ejemplo 1:

Entrada:

Tabla Employee:
+-------+--------+------------+--------+
| empId | name   | supervisor | salary |
+-------+--------+------------+--------+
| 3     | Brad   | null       | 4000   |
| 1     | John   | 3          | 1000   |
| 2     | Dan    | 3          | 2000   |
| 4     | Thomas | 3          | 4000   |
+-------+--------+------------+--------+

Tabla Bonus:
+-------+-------+
| empId | bonus |
+-------+-------+
| 2     | 500   |
| 4     | 2000  |
+-------+-------+

Salida:

+------+-------+
| name | bonus |
+------+-------+
| Brad | null  |
| John | null  |
| Dan  | 500   |
+------+-------+

Solución:

SELECT e.name, b.bonus
FROM employee e
LEFT JOIN bonus b
ON e.empId = b.empId
WHERE ifnull(b.bonus, 0) < 1000;

slackmart blog © 2024