Está en la página 1de 3

1. Obtener todos los datos de los alumnos que hayan nacido en el ao 1990.

--1 select * from DatosAlumno where DATEPART(YEAR, fechaNac)=1990 2. Obtener todos los datos de los alumnos que tengan ms de 24 aos de haber nacido. --- hace referencia a obtener una diferencia datediff --2 select * from DatosAlumno where DATEDIFF(YEAR,fechaNac, GETDATE())> 24 3. Contar cuantas veces los empleados han ingresado notas, mostrando el nombre y apellido del empleado. --3 select Empleado.nombreEmpleado, Empleado.apellidoEmpleado, COUNT(Notas.idEmpleado) from Notas inner join Empleado on Notas.idEmpleado=Empleado.idEmpleado group by -- se agrupa para saber cuantas veces el empleado a usado Empleado.nombreEmpleado, Empleado.apellidoEmpleado, Notas.idEmpleado 4. Mostrar el rne, primer y segundo nombre de los alumnos, y cuando el segundo nombre del alumno sea NULL, mostrar el mensaje Nombre no registrado en esa columna de la fila. --4 select rne, primerNombre, segundoNombre=case when segundoNombre is null then 'Nombre no registrado' else segundoNombre end from DatosAlumno

5. Mostrar todas las notas que tienen registradas los estudiantes (Los campos a mostrar son RNE, primer nombre, primer apellido, nota1, nota2 y ao electivo), si la nota del estudiantes es mayor o igual a 60 entonces mostrar un mensaje diciendo Parcial Aprobado, si la nota es menor a 60 mostrar un mensaje diciendo Parcial Reprobado. --5 select DatosAlumno.rne, DatosAlumno.primerNombre, DatosAlumno.primerApellido, Notas.nota1, Notas.nota2, Notas.aoElectivo, case when Notas.nota1>=60 then 'Parcial Aprobado' else 'Parcial Reprobado' end, case when Notas.nota2>=60 then 'Parcial Aprobado' else 'Parcial Reprobado' end as 'Observacion_nota_2' --- asignar alias (end "Observacion_nota_2") from Notas inner join DatosAlumno on Notas.rne= DatosAlumno.rne

6. Obtener todas las secciones que se encuentran asignadas a la carrera de Bachillerato Tcnico en Computacin (BTC). --6 --Subconsulta select * from Seccion where idCurso IN (select idCurso from Curso where idCarrera= 'BTC') 7. Obtener el dato de cuntas personas han obtenido un promedio mayor o igual a 70% en el ao escolar correspondiente al 2012. --7 select COUNT(*) from Notas where promedio >= 70.0 and aoElectivo=2012 8. Obtener los datos de todos los alumnos cuyo RNE empiece con 0801. --8 select * from DatosAlumno where rne LIKE '0801%'

9. Obtener los datos de todos los alumnos cuyo RNE contenga el ao 1989. 10. Obtener los datos de los 2 primeros estudiantes que no sean repitentes, que no tengan asignado un encargado, que se hayan matriculado en el 2012 y que les imparta clases el empleado con ID 123 o 124, ordenando los registros de forma descendente mediante el RNE. --10 select * from DatosAlumno where rne in (select rne from Matricula where repite=0 and aoElectivo= 2012 and idSeccion in(select idSeccion from ClasesCurso where idEmpleado=123 or idEmpleado=124)) and encargado is null order by rne desc -- select top(1) * top retorna las cantidades que queramos --from DatosAlumno --where rne in (select rne -from Matricula -where repite=0 and aoElectivo= 2012 -and idSeccion in(select idSeccion

-from ClasesCurso -where idEmpleado=123 or idEmpleado=124)) -and encargado is null order by rne desc 11. Obtener el total de cupos asignados a cada uno de los cursos disponibles. --11 -- la suma se hacen en base a los datos agrupados que cumplen la condicion select idCurso, SUM(cupos) from Seccion group by idCurso --si quisieramos saber cuales son mayores a 30 --el having siempre se utiliza cuando se tiene un group by select idCurso, SUM(cupos) from Seccion group by idCurso having SUM(cupos)>30 12. Obtener cual es el curso con la mayor cantidad de cupos asignados. --12 select idCurso, SUM(cupos) from Seccion group by idCurso having SUM(cupos) = (select MAX(total) from (select idCurso, SUM(cupos) total from Seccion group by idCurso) tabla )

También podría gustarte