Actividades complementarias

download Actividades complementarias

of 3

Transcript of Actividades complementarias

Actividades complementariasTablas EMPLE Y DEPART1-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 DEPARTWHERE DNOMBRE='VENTAS')GROUP BY DEPT_NO, OFICIO ORDER BY SUM (SALARIO);2-Selecciona aquellos apellidos de la tabla EMPLE cuyo salario sea igual alamedia del salario en sudepartamento.SELECT APELLIDOFROM EMPLE E1WHERE SALARIO=(SELECT AVG(SALARIO) FROM EMPLE E2 WHEREE2.DEPT_NO =E1.DEPT_NO GROUP BY DEPT_NO);3-A partir de la tabla EMPLE, visualiza el nmero de empleados decadadepartamento cuyo oficio sea'EMPLEADO'.SELECT DEPT_NO "Departamento", COUNT (*) "Empleados con Oficio EMPLEADO"FROM EMPLEWHEREOFICIO='EMPLEADO'GROUP BY DEPT_NO;4-Desde la tabla EMPLE, visualiza eldepartamento que tenga mas empleadoscuyo oficio sea'EMPLEADO'.SELECT DEPT_NO "Departamento", COUNT (*) "Empleados con Oficio EMPLEADO"FROM EMPLEWHEREOFICIO='EMPLEADO'GROUP BY DEPT_NOHAVING COUNT(*)=(SELECT MAX (COUNT(*)) FROMEMPLE WHEREOFICIO='EMPLEADO' GROUPBY 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 ANDOFICIO='EMPLEADO'GROUP BY E.DEPT_NO, DNOMBREHAVING COUNT(*)=(SELECT MAX (COUNT(*)) FROMEMPLE WHEREOFICIO='EMPLEADO' GROUPBY 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 GROUPBYEMPLE.DEPT_NO, OFICIOHAVING COUNT(*)>2);7- Visualizar los nombres de losalumnos de la tabla ALUM queaparezcan enalguna de estas tablas: NUEVOS y ANTIGUOS.select nombre from alum intersect (select nombre from nuevos union select nombrefrom antiguos);8-Escribir las distintasformas en quese puede poner la consultaanteriorllegando 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 fromnuevo) or nombrein (select nombre fromantiguo);9) Visualizar los nombres de losalumnos de la tabla alum que aparezcan enestas dos tablas: antiguos y nuevosselect nombre from alum intersect select nombre from antiguos intersect selectnombre from nuevos;Tablas ALUM, ANTIGUOS Y NUEVOS10.-Realiza una consulta en la que aparezca por cada centroy en cadaespecialidad el numero de profesores. Si elcentro no tiene profesores, debeaparecer un 0 en lacolumna de numero de profesores. Las columnas avisualizar son: nombre de centro, especialidad ynumero 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 BYCOUNT (DNI) DESC;11.-Obtn por cada centro elnumero de empleados. Si el centro carece deempleados, ha deaparecer un 0 como numero deempleados.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 menosprofesores.SELECT ESPECIALIDADFROM PROFESORESGROUP BY ESPECIALIDADHAVING COUNT (*) = (SELECT MIN (COUNT (*)) FROM PROFESORES GROUP BYESPECIALIDAD);Tablas BANCOS, SUCURSALES, CUENTAS y MOVIMIENTOS13.-Obtn el banco con ms sucursales. Los datos aobtener son:Nombre de BancoNSucursales xxxxx xxxSELECT NOMBRE_BANC "BANCO", COUNT (*) "Sucursales"FROM BANCOS B, SUCURSALES SWHEREB.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 HaberSELECT 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_BANCOAND POBLACION = 'GUADALAJARA'GROUP BY B.NOMBRE_BANC;15.-Datos de la cuenta o cuentas conms movimientos.Nombre, Cta NmovimientosSELECT M.NUM_CTA "Numero Cta", NOMBRE_CTA "NOMBRE Cta", COUNT(*) "NMovimientos"FROM MOVIMIENTOS M, CUENTASC WHEREM.NUM_CTA=C.NUM_CTAAND C.COD_SUCUR=M.COD_SUCURAND C.COD_BANCO=M.COD_BANCOGROUP BY M.NUM_CTA, NOMBRE_CTAHAVING COUNT(*)=(SELECT MAX (COUNT (*)) FROM MOVIMIENTOS GROUP BYNUM_CTA);16.-El nombre de la sucursal que haya tenido ms suma de reintegros.Nombre Sucursal Suma ReintegrosSELECT S.NOMBRE_SUC, SUM (IMPORTE) "Suma Reintegros"FROM SUCURSALES S, MOVIMIENTOS MWHERE S.COD_BANCO = M. COD_BANCO AND S.COD_SUCUR = M. COD_SUCUR andM.TIPO_MOV = 'R'GROUP BY NOMBRE_SUCHAVING SUM(IMPORTE) = (SELECT MAX( SUM(IMPORTE)) FROM MOVIMIENTOS MWHERE M.TIPO_MOV = 'R'GROUP BY COD_BANCO, COD_SUCUR);