Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: m@o_614 en 9 Mayo 2014, 20:33 pm



Título: consultas simples
Publicado por: m@o_614 en 9 Mayo 2014, 20:33 pm
Saludos

tengo la siguientes tablas
CENTROS (Numero, Nombre, Direccion)
DEPARTAMENTOS (Numero, Centro, Director, Tipo_director, Presupesto, Depto_jefe, Nombre)
EMPLEADOS (Cod, Departamento, Telefono, Fecha_nacimiento, Fecha_ingreso, Salario, Comision,Num_hijos, Nombre)

y me pide que haga las siguientes consultas:

20. Obtener, por orden alfabético, los nombres y los salarios de los empleados cuyo salario coincide con la comisión de cualquier otro o la suya propia.

yo pense que seria algo como esto:

SELECT Nombre, Salario
FROM EMPLEADOS
WHERE Salario=Comision;

pero en el problema me dice que el salario puede coincidir con la comision de cualquier otro y esa es la parte que no se como hacerla.

otra es: 22. Para los departamentos cuyo salario medio supera al promedio de la empresa, hallar cuántas extensiones telefónicas tienen.

SELECT COUNT(Telefono)
FROM EMPLEADOS AS e, DEPARTAMENTOS AS d
WHERE AVG(e.salario) > AVG(salario);

pero no se como calcular el promedio del salario de toda la empresa

gracias



Título: Re: consultas simples
Publicado por: Carloswaldo en 14 Mayo 2014, 23:59 pm
Yo supongo que para el problema 20 puedes usar subconsultas, algo como:

Código
  1. SELECT Nombre, Salario
  2. FROM EMPLEADOS
  3. WHERE Salario IN (SELECT Comision FROM EMPLEADOS);

Para el problema 22, el promedio de salario de la empresa lo sacaste con AVG(e.salario)


Título: Re: consultas simples
Publicado por: robertito_prado en 28 Junio 2014, 17:13 pm
La consulta 22 es un poco rara... Extensiones telefónicas se refiere a teléfonos de los empleados que trabajan en esos departamentos?
Lo digo por que la tabla departamento no tiene ningun campo que sea extensión telefónica ni nada parecido...