Trabajo de Consultas Northwind en SQL

“Año del Diálogo y la Reconciliación Nacional” 24-12018 CONSULTAS SQL “BASE DE DATOS” Curso: Base De Datos Facultad:

Views 170 Downloads 2 File size 381KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

“Año del Diálogo y la Reconciliación Nacional”

24-12018

CONSULTAS SQL “BASE DE DATOS”

Curso: Base De Datos Facultad: Ing. De Sistemas e informáticas Profesor: José Edgard García Díaz Institución: Universidad Nacional de la Amazonia Peruana Ciclo: IV Nivel. 3 Integrantes:  Dávila Panduro, Alvaro Miguel  Del Águila Shermuly, Elton Jamil  Bollet Lanchi, Fredy Brian  Fernández Hoyos, Miguel

Iquitos-Perú

EJERCICIO 1: Listar código de los alumnos, nombre del alumno cuya profesión es estudiante y empiezan con la letra ¨e¨ hasta la ¨z¨ y a sus profesores y cursos (ordenar por alumno) SELECT NOMBRE_COMPLETO as [NOMBRE ALUMNO], NOM_PROFESOR, nom_curso FROM PROFESOR AS pro inner join GRUPOS as g on pro.ID_PROFESOR = g.ID_PROFESOR inner join CURSOS as c on g.ID_CURSOS= c.ID_CURSOS inner join MATRICULAS as m on c.ID_CURSOS= m.ID_CURSOS inner join ALUMNO as a on m.ID_ALUMNO= a.ID_ALUMNO WHERE profesión = ‘estudiante’ and nombre_completo LIKE '[E-Z]%' ORDER BY [NOMBRE ALUMNO]

EJERCICIO 2 Mostrar las clases que se dictan en las fechas entre 2018-05-01 y 2018-10-31 a los profesores que los dictaran, los horarios y las aulas en las que se impartirán las clases. SELECT NOMBRE_GRUPO, fecha_ini, gr.fecha_fin, NOM_PROFESOR, L_M_X_J_V, HORA_INICIO, HORA_FIN, AULA FROM GRUPOS AS gr inner join PROFESOR as pr on gr.ID_PROFESOR = pr.ID_PROFESOR inner join HORARIO as hr on gr.ID_GRUPOS= hr.ID_GRUPOS where fecha_ini between '02/05/2018' and '03/10/2018'

pág. 1

EJERCICIO 3 Mostrar el id, nombre y el top 10 de alumnos que sacaron mayor nota en sus promedios de los alumnos que no hayan tenido faltas (ordenar promedio de forma descendente) SELECT TOP 10 A.ID_ALUMNO, NOMBRE_ALUMNO,ASISTE, AVG(NOTAS) AS PROMEDIO FROM ALUMNO AS A INNER JOIN [Notas Alumno] AS NA ON A.ID_ALUMNO = NA.ID_ALUMNO inner join ASISTENCIA AS ASI ON A.ID_ALUMNO= ASI.ID_ALUMNO WHERE Asiste = 'SI' GROUP BY A.ID_ALUMNO, NOMBRE_ALUMNO, ASISTE ORDER BY PROMEDIO DESC

EJERCICIO 4 Mostrar a los alumnos que pertenecen a la ciudad de Iquitos y Lima y que sus nota promedio es mayor igual a 15 y sus nombre inicie desde la b hasta la r (ordenado por nombre del alumno) SELECT na.ID_ALUMNO, NOMBRE_ALUMNO, CIUDAD, AVG(NOTAS) AS PROMEDIO FROM [Notas Alumno] as na INNER JOIN ALUMNO AS al on na.ID_ALUMNO= al.ID_ALUMNO WHERE CIUDAD IN ('IQUITOS', 'LIMA') AND nombre_alumno LIKE '[B-R]%' GROUP BY na.ID_ALUMNO, NOMBRE_ALUMNO , CIUDAD HAVING AVG(NOTAS) >=15 ORDER BY nombre_alumno

pág. 2

EJERCICIO 5 Mostrar el id, el nombre de los alumnos que faltaron, la razón por la que faltaron y los cursos a los que faltaron donde los cursos estén entre los meses de marzo y octubre SELECT AL.ID_ALUMNO, nombre_alumno, NOMBRE AS Motivo_Falta , NOM_CURSO, fecha_inicio FROM ALUMNO AS AL INNER JOIN ASISTENCIA AS ASI ON AL.ID_ALUMNO = ASI.ID_ALUMNO INNER JOIN CLASES AS CL ON ASI.ID_CLASES= CL.ID_CLASES INNER JOIN TIPO_DE_CANCELACION AS TC ON CL.ID_TC= TC.ID_TC INNER JOIN MATRICULAS AS MA ON MA.ID_ALUMNO = AL.ID_ALUMNO INNER JOIN CURSOS AS CU ON MA.ID_CURSOS= CU.ID_CURSOS WHERE fecha_inicio BETWEEN '2018-05-02'and '2018-08-01' AND nombre_alumno NOT LIKE '%[c-q]'

EJERCICIO 6 MOSTRAR EL CODIGO, NOMBRES, LA SUMA (QUE SEA MAYOR A 20) Y EL PROMEDIO (QUE SEA MAYOR A 15) DE LAS NOTAS POR ALUMNO DONDE EL CODIGO DEL ALUMNO SEA DIFERENTE DE ‘4,7,12,17, 20’, EL NOMBRE DEL ALUMNO NO COMIENCE CON ‘R’, EL CODIGO DEL GRUPO ESTE ENTRE 1 Y 9 , EL MES DE LA FECHA DE INICIO SEA 8. ORDENAR EN FORMA DESCENDENTE

SELECT NA.ID_ALUMNO, NOMBRE_COMPLETO AS [NOMBRE ALUMNO] , SUM(NOTAS) AS SUMA_NOTAS, AVG(NOTAS) AS PROMEDIO FROM [Notas Alumno] AS NA INNER JOIN ALUMNO AS A ON NA.ID_ALUMNO= A.ID_ALUMNO INNER JOIN CURSOS AS CU ON NA.ID_CURSOS = CU.ID_CURSOS INNER JOIN GRUPOS AS GR ON CU.ID_CURSOS= GR.ID_CURSOS WHERE NA.ID_ALUMNO NOT IN (4,7,12,17, 20) AND nombre_alumno NOT LIKE 'R%' AND ID_GRUPOS BETWEEN 1 AND 9 AND DATEPART (MM,GR.FECHA_INICIO)='08' GROUP BY NA.ID_ALUMNO,NOMBRE_COMPLETO HAVING SUM(NOTAS) >20 AND AVG(NOTAS) >15 ORDER BY SUMA_NOTAS, PROMEDIO DESC

pág. 3

EJERCICIO 7 MOSTRAR LAS CIUDADES CON LA CANTIDAD DE ESTUDIANTES QUE TIENEN .

SELECT CIUDAD, COUNT(ID_ALUMNO) AS ALUMNOS_POR_CIUDAD FROM ALUMNO GROUP BY CIUDAD ORDER BY ALUMNOS_POR_CIUDAD DESC

EJERCICIO 8 MOSTRAR CUANTOS ESTUDIANTES HAY POR CADA CURSO, MIENTRAS QUE EL TOTAL DE ESTUDIANTES SEA MAYOR IGUAL A 5 Y EXONERANDO AL LOS CURSOS CON ID 4,2,8 MOSTRAR EL CODIGO DEL CURSO, EL NOMBRE DEL CURSO, TOTAL DE ESTUDIANTES.

SELECT MA.ID_CURSOS,NOM_CURSO, COUNT(MA.ID_ALUMNO) AS [TOTAL ESTUDUANTES POR CURSO ] FROM MATRICULAS AS MA INNER JOIN CURSOS AS CU ON MA.ID_CURSOS= CU.ID_CURSOS WHERE MA.ID_CURSOS NOT IN (4,2,8) GROUP BY MA.ID_CURSOS ,NOM_CURSO HAVING COUNT(MA.ID_ALUMNO)>=5 ORDER BY [TOTAL ESTUDUANTES POR CURSO ] DESC

pág. 4

EJERCICIO 9 MOSTRAR CUALES SON LOS ALUMNOS QUE TIENEN CLASES EN LAS TARDES Y LLEVAN EL CURSO DE PIANO, TROMPETA Y CANTO, LOS DIAS, LOS PROFESORES MIENTRAS QUE TENGAN GMAIL COMO CORREO ELECTRONICO, QUE SEAN DE IQUITOS Y AREQUIPA. MOSTRAR: ‘ID ALUMNO, NOMBRE_ALUMNO, CURSOS EN LA TARDE, AULA, DIAS, HORA, PROFESORES, CIUDAD Y CORREO’

SELECT AL.ID_ALUMNO, AL.NOMBRE_ALUMNO, CU.NOM_CURSO,AULA, L_M_X_J_V, HORA_INICIO, HORA_FIN, NOM_PROFESOR, AL.CIUDAD, E_mail FROM ALUMNO AS AL INNER JOIN MATRICULAS AS MA ON AL.ID_ALUMNO = MA.ID_ALUMNO INNER JOIN CURSOS AS CU ON MA.ID_CURSOS = CU.ID_CURSOS INNER JOIN GRUPOS AS GR ON CU.ID_CURSOS = GR.ID_CURSOS INNER JOIN HORARIO AS HR ON GR.ID_GRUPOS= HR.ID_GRUPOS INNER JOIN PROFESOR AS PRO ON HR.ID_PROFESOR = PRO.ID_PROFESOR WHERE HORA_INICIO = '15:00' AND nom_curso IN ('PIANO','TROMPETA', 'CANTO') AND E_MAIL LIKE '%GMAIL%' AND CIUDAD IN ('IQUITOS', 'AREQUIPA')

EJERCICIO 10 LISTAR LOS ALUMNOS QUE JALARON EN EL PROMEDIO MOSTRAR: ID_ALUMNO, NOMBRE_COMPLETO, PROMEDIO_JALADOS

SELECT AL.ID_ALUMNO, nombre_completo AS [NOMBRES ALUMNO], AVG(NOTAS) AS PROMEDIO_JALADOS FROM [Notas Alumno] NA INNER JOIN ALUMNO AL ON NA.ID_ALUMNO= AL.ID_ALUMNO GROUP BY AL.ID_ALUMNO, nombre_completo HAVING AVG(NOTAS)