MySQL - relacionar los datos en mysql

   
Vista:

relacionar los datos en mysql

Publicado por Silvia (2 intervenciones) el 05/07/2015 07:12:26
Hola. buen día, necesito hacer una consulta en my sql donde mande a traer el nombre, apellido y salario de la persona que gana menos y la que gana mas, el caso es que cuando trato de hacer el min(salario) no me da el nombre de la persona a la que corresponde este, sino me da al que le corresponde el mayor salario, esto es lo que obtengo:

select last_name, first_name, max(salary)
from employees;

en este me da el nombre correcto del empleado al que corresponde el mayor salario, pero en esta:

select last_name, first_name, min(salary)
from employees;

en este me da el salario mas bajo, pero no el nombre correcto de la persona quien gana este

El caso es que necesito su ayuda para que me de el min(salary) con el nombre del trabajador que gana el salario mas bajo.

dentro de la tabla employees tengo los siguientes datos:
employee_id
first_name
last_name
email
phone_number
hire_date
job_id
salary
commission_pct
manager_id
department_id

Agradesco su ayuda, en verdad me urge, gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

relacionar los datos en mysql

Publicado por Rafael (57 intervenciones) el 06/07/2015 10:44:42
A ver tienes que entender el concepto para que sepas como hacerlo...

Las funciones MIN y MAX trabajan sobre un conjunto de datos es decir de todos los empleados que busques te obtiene el salario Mínimo y el Máximo, pero esto te dice el que pero no el quien ...

Ejemplo dado los siguientes datos:
1
2
3
4
5
6
7
8
9
10
11
*************************************************
* employee_id * last_name * first_name * salary *
*************************************************
* 1           * A         * A          *      5 *
* 2           * B         * B          *      6 *
* 3           * C         * C          *      9 *
* 4           * D         * D          *      8 *
* 5           * E         * E          *      5 *
*************************************************
 
select min(salary), max(salary) from employees;

El query te dira que el Minimo salario es 5 (ojo que esta dos veces) y el Maximo 9.
Asi pues lo que necesitas es saber ahora es quienes cobran 5 y quienes 9...

Algo asi:
1
2
3
4
5
6
7
SELECT
  last_name,
  first_name,
  salary
FROM
  employees
where salary = (select min(salary) from employees)

Que en principio en el ejemplo te deberia devolver esto:
1
2
3
4
5
6
***********************************
* last_name * first_name * salary *
***********************************
* A         * A          *      5 *
* E         * E          *      5 *
***********************************

Puedes inferir como hacerlo para el maximo supongo ...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar