Anda di halaman 1dari 3

Actividades complementarias

Tablas EMPLE Y DEPART


1-
Partiendo de la tabla EMPLE, visualiza por cada oficio de los empleados
deldepartamento 'VENTAS' la suma de salarios.

SELECT DEPT_NO, OFICIO, SUM (SALARIO)"Suma
salarios"FROM EMPLEWHERE DEPT_NO= (SELECT DEPT_NO
FROM DEPART WHERE DNOMBRE='VENTAS')GROUP BY
DEPT_NO, OFICIO ORDER BY SUM (SALARIO);
2-
Selecciona aquellos apellidos de la tabla EMPLE cuyo salario sea igual
a lamedia del salario en su departamento.
SELECT APELLIDOFROM EMPLE E1WHERE SALARIO=(SELECT
AVG(SALARIO) FROM EMPLE E2 WHERE E2.DEPT_NO
=E1.DEPT_NO GROUP BY DEPT_NO);
3-
A partir de la tabla EMPLE, visualiza el nmero de empleados
de cadadepartamento cuyo oficio sea 'EMPLEADO'.
SELECT DEPT_NO "Departamento", COUNT (*) "Empleados
con Oficio EMPLEADO"FROM
EMPLEWHERE OFICIO='EMPLEADO'GROUP BY DEPT_NO;
4-Desde la tabla EMPLE, visualiza el departamento que tenga mas
empleadoscuyo oficio sea'EMPLEADO'.
SELECT DEPT_NO "Departamento", COUNT (*) "Empleados
con Oficio EMPLEADO"FROM
EMPLEWHERE OFICIO='EMPLEADO'GROUP BY
DEPT_NOHAVING COUNT(*)=(SELECT MAX (COUNT(*))
FROM EMPLE WHEREOFICIO='EMPLEADO' GROUP BY DEPT_NO
);
5.-
A partir de las tablas EMPLE y DEPART, visualiza el numero dedepartamento
y el nombrede departamento que tenga mas empleados cuyo oficio sea
'EMPLEADO'.
SELECT DNOMBRE "Nombre Departamento", E.DEPT_NO
"Departamento", COUNT(*)"Empleados con Oficio
EMPLEADO"FROM EMPLE E, DEPART DWHERE
E.DEPT_NO=D.DEPT_NO AND OFICIO='EMPLEADO'GROUP BY
E.DEPT_NO, DNOMBREHAVING COUNT(*)=(SELECT MAX
(COUNT(*)) FROM EMPLE WHEREOFICIO='EMPLEADO'
GROUP BY DEPT_NO );

6.-
Busca los departamento que tienen mas de dos personas trabajando en
lamisma profesin.
SELECT DNOMBREFROM DEPARTWHERE DEPT_NO=(SELECT
DISTINCT (DEPT_NO) FROM EMPLE
GROUP BY EMPLE.DEPT_NO, OFICIO HAVING COUNT(*)>2);
7- Visualizar los nombres de los alumnos de la tabla ALUM que aparezcan
enalguna de estas tablas: NUEVOS y ANTIGUOS.
select nombre from alum intersect (select nombre from
nuevos union select nombrefrom antiguos);
8- Escribir las distintas formas en que se puede poner la
consulta anterior llegando al mismo resultado
*select nombre from alum where nombre in(select nombre
from nuevo) union selectnombre from antiguo);*select
nombre from alum where nombre in (select nombre
from nuevo) or nombrein (select nombre from antiguo);
9) Visualizar los nombres de los alumnos de la tabla alum que aparezcan
enestas dos tablas: antiguos y nuevos
select nombre from alum intersect select nombre from
antiguos intersect selectnombre from nuevos;
Tablas ALUM, ANTIGUOS Y NUEVOS
10.-
Realiza una consulta en la que aparezca por cada centro y en
cadaespecialidad el numero de profesores. Si el centro no tiene profesores,
debeaparecer un 0 en la columna de numero de profesores. Las columnas
avisualizar son: nombre de centro, especialidad y numero de profesores.
SELECT NOMBRE "Centro", ESPECIALIDAD "Especialidad",
COUNT(DNI)"Profesores"FROM CENTROS C, PROFESORES
PWHERE C.COD_CENTRO =P.COD_CENTRO (+)GROUP BY
NOMBRE, ESPECIALIDAD ORDER BY COUNT (DNI) DESC;
11.-
Obtn por cada centro el numero de empleados. Si el centro carece
deempleados, ha deaparecer un 0 como numero de empleados.
SELECT NOMBRE "Centro", COUNT (DNI)"Profesores"FROM
CENTROS C, PERSONAL PWHERE C.COD_CENTRO
=P.COD_CENTRO (+)GROUP BY NOMBRE ORDER BY COUNT
(DNI) DESC;

12.-
Obtener la especialidad con menos profesores.
SELECT ESPECIALIDADFROM PROFESORESGROUP BY
ESPECIALIDADHAVING COUNT (*) = (SELECT MIN (COUNT
(*)) FROM PROFESORES GROUP BY ESPECIALIDAD);
Tablas BANCOS, SUCURSALES, CUENTAS y MOVIMIENTOS
13.-
Obtn el banco con ms sucursales. Los datos a obtener son:Nombre de
Banco NSucursales xxxxx xxx
SELECT NOMBRE_BANC "BANCO", COUNT (*)
"Sucursales"FROM BANCOS B, SUCURSALES
SWHERE B.COD_BANCO=S.COD_BANCOGROUP BY
NOMBRE_BANCHAVING COUNT (*) = (SELECT MAX
(COUNT(*)) FROM BANCOS B, SUCURSALES SWHERE
B.COD_BANCO=S.COD_BANCO GROUP BY NOMBRE_BANC);
14.-
El saldo actual de los bancos de 'GUADALAJARA', 1 fila por cada
banco.Nombre de Banco, Saldo Debe, Saldo Haber
SELECT B.NOMBRE_BANC "Nombre Banco", SUM
(SALDO_DEBE) "Saldo Debe", SUM(SALDO_HABER) "Saldo
Haber"FROM BANCOS B, CUENTAS CWHERE B.COD_BANCO =
C.COD_BANCO AND POBLACION = 'GUADALAJARA'GROUP BY
B.NOMBRE_BANC;
15.-
Datos de la cuenta o cuentas con ms movimientos.Nombre, Cta
Nmovimientos
SELECT M.NUM_CTA "Numero Cta", NOMBRE_CTA "NOMBRE
Cta", COUNT(*) "NMovimientos"
FROM MOVIMIENTOS M, CUENTASC
WHERE M.NUM_CTA=C.NUM_CTA
AND C.COD_SUCUR=M.COD_SUCUR
AND C.COD_BANCO=M.COD_BANCO
GROUP BY M.NUM_CTA, NOMBRE_CTA
HAVING COUNT(*)=(SELECT MAX (COUNT (*))
FROM MOVIMIENTOS
GROUP BY NUM_CTA);
16.-
El nombre de la sucursal que haya tenido ms suma de reintegros.Nombre
Sucursal Suma Reintegros
SELECT S.NOMBRE_SUC, SUM (IMPORTE) "Suma Reintegros"
FROM SUCURSALES S, MOVIMIENTOS M
WHERE S.COD_BANCO = M. COD_BANCO AND S.COD_SUCUR =
M. COD_SUCUR
andM.TIPO_MOV = 'R'
GROUP BY NOMBRE_SUC
HAVING SUM(IMPORTE) = (SELECT MAX( SUM (IMPORTE))
FROM MOVIMIENTOS M
WHERE M.TIPO_MOV = 'R'GROUP BY COD_BANCO,
COD_SUCUR);

Anda mungkin juga menyukai