Anda di halaman 1dari 10

BASE DE DATOS SYSPERSONAL --LISTA DE EMPLEADOS CON EL SEXO FEMENINO SELECT E.empNombres,E.empApellidoPaterno,E.empApellidoMaterno,S.

sexDescripcion FROM Empleado E inner join Sexo S ON E.IdSexo=S.IdSexo WHERE S.IdSexo=2 --EMPLEADO QUE PERTENECE A LA OFICINA DE SISTEMA Y PROCESOS SELECT E.empNombres,E.empApellidoPaterno,E.empApellidoMaterno,A.areaNombre FROM Empleado E inner join Area A ON E.IdArea=A.IdArea WHERE A.IdArea=4 --EMPLEADO QUE PERTENECE A LA OFICINA DE SISTEMA Y PROCESOS(METODO 2) SELECT E.empNombres,E.empApellidoPaterno,E.empApellidoMaterno,A.areaNombre FROM Empleado E inner join Area A ON E.IdArea=A.IdArea WHERE RTRIM(A.areaNombre)='Sistemas y procesos' --Busqueda de empleado segun codigo SELECT E.IdEmpleado,E.empNombres,E.empApellidoPaterno,E.empApellidoMaterno FROM Empleado E WHERE E.IdEmpleado=3001 --Comparaciones con tipo de dato de fechas cuando se tienen formato espaniol e ingles SELECT R.IdRegistro,R.IdEmpleado,R.regfecha,R.regHora1,R.regHorafin1,R.regHora2,R.regHor afin2 FROM Registro R WHERE CONVERT (char(10),regfecha,103)=CONVERT(char(10),'03/11/2008') --Lista de empleados que trabaja solamente en el horario normal de lunes a viernes --Filtrar los empleados entre rango de fechas de la hora de ingreso y --hora de salida

--Lista de Oficina k tenga mas empleados SELECT TOP 1 COUNT(A.IdArea) as CantidadEmpleados, A.areaNombre,A.IdArea FROM Empleado E inner join Area A ON E.IdArea=A.IdArea group by A.areaNombre,A.IdArea

--Listar la falta de empleados entre rango de fechas SELECT dbo.Empleado.IdEmpleado, count(dbo.Registro.regFaltas) FROM dbo.Empleado INNER JOIN dbo.Registro ON dbo.Empleado.IdEmpleado = dbo.Registro.IdEmpleado WHERE CONVERT(char(10),dbo.Registro.regfecha,103) between '03/03/2008' and '12/12/2008' GROUP BY dbo.Empleado.IdEmpleado --Mostrar a un usuario con su nombre y apellido enviando el usuario --y la contrasea SELECT U.Idusuario,E.empNombres,E.empApellidoPaterno,E.empApellidoMaterno From Empleado E inner join Usuario U ON E.IdEmpleado=U.Idusuario WHERE U.usuNick='salvarado' and U.usuPassword='12345' --OTRO METODO set language spanish declare @user varchar(20) set @user='suser' declare @pass varchar(20) set @pass='123' SELECT U.Idusuario,E.empNombres,E.empApellidoPaterno,E.empApellidoMaterno From Empleado E inner join Usuario U ON E.IdEmpleado=U.Idusuario where U.usuNick=@user and U.usuPassword=@pass --Buscar un Empleado solamente cuando ingresamos sus iniciales de su --Apellido Paterno SELECT E.empApellidoPaterno,E.empApellidoMaterno,E.empNombres From Empleado E WHERE E.empApellidoPaterno LIKE '[P]%' --Buscar por Inicial de Apellido Paterno y Materno declare @apellp varchar(20) set @apellp='h' declare @apellm varchar(20) set @apellm='qui' SELECT E.empNombres,E.empApellidoPaterno,E.empApellidoMaterno From Empleado E where UPPER(E.empApellidoPaterno) like UPPER(@apellp+'%') AND UPPER(E.empApellidoMaterno) like UPPER(@apellm+'%') --Buscar por Inicial de SEXO
ALTER PROCEDURE [dbo].[uspSelectSexo] @IDSexo varchar(4), @SexDescripcion varchar(50) AS BEGIN SELECT IdSexo ,sexDescripcion FROM Sexo

where UPPER(IdSexo) like UPPER(@IDSexo+'%') AND UPPER(sexDescripcion) like UPPER(@SexDescripcion+'%') END

BASE DE DATOS EXAMEN


--PARA EFECTOS DE AUDITORIA LA TABLA EMPLEADO TIENE UN CAMPO DE ESTADO --DE TIPO BIT, MOSTRAR TODOS AQUELLOS QUE TIENE EL ESTADO INACTIVO SELECT P.peNombres,P.peApellidoPaterno,P.peApellidoMaterno,E.empEstado FROM Persona P inner join Empleado E ON P.IdPersona=E.IdEmpleado WHERE E.empEstado=0 --Mostrar los campos de Nombres y Apellidos de la tabla persona de --aquelllos usuarios que tienen acceso multiple SELECT P.peNombres,P.peApellidoPaterno,P.peApellidoMaterno FROM Persona P inner join Empleado E ON P.IdPersona=E.IdEmpleado Inner join Usuario U ON E.IdEmpleado=U.IdUsuario WHERE U.usuMultipleSesion=1

--Determinar la cantidad de usuarios terminales que existen en el sistema SELECT count(Distinct UT.idUsuario) FROM UsuarioTerminal UT Where utTerminal=1

--Mostrar la cantidad de usuarios que ingresaron a la institucin a --laborar el ao 2007 SELECT COUNT(U.IdUsuario) FROM Empleado E inner join Usuario U ON E.IdEmpleado=U.IdUsuario WHERE DATENAME(yy,U.usuFechaCreacion)= '2007' --PARA EFECTOS DE AUDITORIA LA TABLA EMPLEADO TIENE UN CAMPO DE ESTADO --DE TIPO BIT, MOSTRAR TODOS AQUELLOS QUE TIENE EL ESTADO INACTIVO SELECT P.peNombres,P.peApellidoPaterno,P.peApellidoMaterno,E.empEstado FROM Persona P inner join Empleado E ON P.IdPersona=E.IdEmpleado WHERE E.empEstado=0 --Mostrar los campos de Nombres y Apellidos de la tabla persona de --aquelllos usuarios que tienen acceso multiple SELECT P.peNombres,P.peApellidoPaterno,P.peApellidoMaterno FROM Persona P inner join Empleado E ON P.IdPersona=E.IdEmpleado Inner join Usuario U ON E.IdEmpleado=U.IdUsuario WHERE U.usuMultipleSesion=1

--Determinar la cantidad de usuarios terminales que existen en el sistema SELECT count(Distinct UT.idUsuario) FROM UsuarioTerminal UT Where utTerminal=1 --Mostrar la cantidad de usuarios que ingresaron a la institucin a --laborar el ao 2007 SELECT COUNT(U.IdUsuario) FROM Empleado E inner join Usuario U ON E.IdEmpleado=U.IdUsuario WHERE DATENAME(yy,U.usuFechaCreacion)= '2007'

--Obtiene la edad calculada actual SELECT Nombres+''+Paterno+''+Materno as 'Nombres y Apellidos' ,DATEDIFF(YY,fechanac,GETDATE())as EDAD from Persona.Contacto --muestra los nombres de personas con sus respectivos fechas de nacimiento(DIA mes y AO) SELECT Nombres+''+Paterno+' '+Materno as 'Nombres y Apellidos' ,datename(WEEKDAY,FechaNac)+' '+datename(DD,FechaNac)+' de '+datename(MM,FechaNac)+' de '+datename(YY,FechaNac) from Persona.Contacto order by Paterno --Muestra las edades entre 18 y 21 anios de edad actual SELECT Nombres+''+Paterno+''+Materno as 'Nombres y Apellidos' ,DATEDIFF(YY,fechanac,GETDATE())as EDAD from Persona.Contacto where DATEDIFF(YY,fechanac,GETDATE()) between 18 and 21 -------------------------------------------------------------------select COUNT(*)from Admision.Carrera select COUNT(*)from Admision.Modalidad --multiplicacion de cardinalidad de las tablas que se estan usando select COUNT(*)from Admision.Carrera,Admision.Modalidad -------------------------------------------------------------------select * from Admision.Carrera,Persona.Postulante where Admision.Carrera.IDCarrera=Persona.Postulante.IDCarrera AND Persona.Postulante.IDPerAcad='2005-1' --------------------------------------------------------------------select * from Admision.Carrera as C,Persona.Postulante as P where C.IDCarrera=P.IDCarrera AND P.IDPerAcad='2005-1' --pregunta numero 1 SELECT Paterno+' '+Materno+' '+Nombres as [Apellidos y Nombres] ,genero,DATEDIFF(YY,fechanac,GETDATE())as EDAD from Persona.Contacto where DATEDIFF(YY,fechanac,GETDATE())>17 order by DATEDIFF(YY,fechanac,GETDATE()) --Pregunta numero 2 (FALTA) SELECT Paterno+' '+Materno+' '+Nombres as [Apellidos y Nombres]

EJEMPLOS

,DNI from Persona.Contacto where RIGHT(DNI,1)='2' or RIGHT(DNI,1)='4' or RIGHT(DNI,1)='6' or RIGHT(DNI,1)='8' --Pregunta numero 3 SELECT Paterno+' '+Materno+' '+Nombres as [Apellidos y Nombres] ,DATEDIFF(YY,fechanac,GETDATE())as EDAD from Persona.Contacto where DATEDIFF(YY,fechanac,GETDATE()) in ('17','19','21') --Pregunta numero 4 SELECT Paterno+' '+Materno+' '+Nombres as [Apellidos y Nombres] ,genero,DATEDIFF(YY,fechanac,GETDATE())as EDAD from Persona.Contacto where Paterno in ('Lino','Yauri','Villar') --Pregunta numero 5 SELECT Paterno+' '+Materno+' '+Nombres as [Apellidos y Nombres] ,genero,DATEDIFF(YY,fechanac,GETDATE())as EDAD ,IDPerAcad from Persona.Contacto as C,Persona.Postulante as P where C.IDContacto=P.IDContacto AND P.IDPerAcad='2005-2' --Pregunta numero 6 SELECT Paterno+' '+Materno+' '+Nombres as [Apellidos y Nombres] ,IDPerAcad from Persona.Contacto as C,Persona.Postulante as P where C.IDContacto=P.IDContacto AND P.IDPerAcad='2005-2' and P.AsistioExamen='1' --Pregunta numero 7 select COUNT(*) from Persona.Contacto as C,Persona.Postulante as P where C.IDContacto=P.IDContacto AND P.IDPerAcad='2006-1' --Pregunta numero 8 SELECT P.IDPerAcad, AVG(P.Puntaje) AS [Puntaje] FROM Persona.Postulante AS P Where P.IDPerAcad='2006-1' GROUP BY P.IDPerAcad --Pregunta numero 9 select Nombres + ' '+ Paterno + ' ' + Materno AS 'Nombre y Apellidos',Genero , DATEDIFF(yy,fechanac,GETDATE())as Edad , Admision.PerAcad.IDPerAcad, Nombre as nombre_carrera From Persona.Contacto,Persona.Postulante,Admision.Carrera,Admision.PerAcad,Admision.Modalidad where Admision.PerAcad.IDPerAcad = '2005-2' --Pregunta numero 10 select Nombres + ' '+ Paterno + ' ' + Materno AS 'Nombre y Apellidos',Genero

, DATEDIFF(yy,fechanac,GETDATE())as Edad , Admision.PerAcad.IDPerAcad, Nombre as nombre_carrera, Admision.Modalidad.Modalidad From Persona.Contacto,Persona.Postulante,Admision.Carrera,Admision.PerAcad,Admision.Modalidad where Admision.PerAcad.IDPerAcad = '2005-2'

--Pregunta numero 1 SELECT DISTINCT P.IDPerAcad [PERIODO] ,COUNT(CASE WHEN P.IDCarrera='101' THEN '101' END) AS [101] ,COUNT(CASE WHEN P.IDCarrera='309' THEN '309' END) AS [309] ,COUNT(CASE WHEN P.IDCarrera='310' THEN '310' END) AS [310] ,COUNT(CASE WHEN P.IDCarrera='101' or P.IDCarrera='309' or P.IDCarrera='310' then '' end) AS [TOTAL] FROM Persona.Postulante AS P WHERE P.IDCarrera='101' or P.IDCarrera='309' or P.IDCarrera='310' --where IDPerAcad in ('2005-1','2005-2','2006-1','2006-2','2007-1') -- en vez del otro where tambien se puede con esto GROUP BY P.IDPerAcad GO /*otro metodo SELECT IDPerAcad ,SUM(CASE P.IDCarrera WHEN '101' THEN 1 else 0 END) AS [101] //Si es 101 suma 1 sino 0 ,SUM(CASE P.IDCarrera WHEN '309' THEN 1 else 0 END) AS [309] ,SUM(CASE P.IDCarrera WHEN '310' THEN 1 else 0 END) AS [310] ,COUNT(*) AS [TOTAL] FROM Persona.Postulante as P group by IDPerAcad */ --Pregunta numero 2 SELECT DISTINCT P.IDPerAcad [PERIODO] ,COUNT(CASE WHEN P.IDCarrera='101' THEN '101' END) AS [101] ,COUNT(CASE WHEN P.IDCarrera='309' THEN '309' END) AS [309] ,COUNT(CASE WHEN P.IDCarrera='310' THEN '310' END) AS [310] ,COUNT(CASE WHEN P.IDCarrera='101' or P.IDCarrera='309' or P.IDCarrera='310' then '' end) AS [TOTAL] FROM Persona.Postulante AS P WHERE P.IDCarrera='101' or P.IDCarrera='309' or P.IDCarrera='310' GROUP BY P.IDPerAcad UNION SELECT 'TOTAL' ,COUNT(CASE WHEN P.IDCarrera='101' THEN '101' END) AS [101] ,COUNT(CASE WHEN P.IDCarrera='309' THEN '309' END) AS [309] ,COUNT(CASE WHEN P.IDCarrera='310' THEN '310' END) AS [310] ,COUNT(CASE WHEN P.IDCarrera='101' or P.IDCarrera='309' or P.IDCarrera='310' then '' end) AS [TOTAL] FROM Persona.Postulante AS P GO --Pregunta numero 3 CREATE PROCEDURE uspListaPostulantesxPerAcadEnum @IDPerAcad varchar(6) AS

SELECT C.Paterno+' '+C.Materno+' '+C.Nombres AS [Apellidos y Nombres] ,ROW_NUMBER() over(partition by LEFT(C.Paterno,1) order by C.Paterno) FROM Persona.Contacto C, Persona.Postulante P Where C.IDContacto=P.IDContacto AND P.IDPerAcad=@IDPerAcad GO EXEC uspListaPostulantesxPerAcadEnum '2007-1' GO

--Pregunta numero 4 SELECT DISTINCT C.Paterno+' '+C.Materno+' '+C.Nombres AS [Apellidos y Nombres] ,P.Puntaje FROM Persona.Postulante AS P,Persona.Contacto AS C WHERE P.IDContacto=C.IDContacto GROUP BY P.Puntaje,C.Paterno,C.Materno,C.Nombres HAVING P.Puntaje>=(SELECT AVG(Puntaje)FROM Persona.Postulante) order by P.Puntaje --Pregunta numero 5 SELECT DISTINCT C.Paterno+' '+C.Materno+' '+C.Nombres AS [Apellidos y Nombres] ,Puntaje,P.IDPerAcad,Promedio FROM Persona.Contacto AS C inner join Persona.Postulante AS P ON C.IDContacto=P.IDContacto inner join (SELECT IDPerAcad, avg(puntaje) AS Promedio FROM Persona.Postulante GROUP BY IDPerAcad ) AS pu ON pu.IDPerAcad = p.IDPerAcad WHERE p.Puntaje >= pu.Promedio GO --and p.Puntaje >= pu.Promedio --Pregunta numero 6 CREATE VIEW vNoPostularonxApEdadGenero AS SELECT DISTINCT C.Paterno+' '+C.Materno+' '+C.Nombres AS [Apellidos y Nombres] ,CASE WHEN P.AsistioExamen='0' THEN 'NO' else 'SI' END AS [POSTULO] ,DATEDIFF(YY,fechanac,GETDATE())as EDAD ,CASE WHEN C.Genero='1' THEN 'VARON' else 'MUJER' END AS [GENERO] FROM Persona.Postulante AS P,Persona.Contacto AS C WHERE C.IDContacto=P.IDContacto AND P.AsistioExamen='0' --Pregunta numero 7 CREATE VIEW vIngresantesCumpleaosMaana AS select pc.Paterno+' '+pc.Materno+' '+pc.Nombres as [Apellidos y Nombres],p.Ingreso,datename(dd,FechaNac) + ' de ' + DATENAME(MM,FechaNac) + ' de ' + DATENAME(YY,GETDATE()) as FechaCumpleaos, datename(dd,GETDATE())+ ' de ' + DATENAME(MM,GETDATE()) + ' de ' + DATENAME(YY,GETDATE())as FechaActual from Persona.Postulante p inner join Persona.Contacto pc on p.IDContacto=pc.IDContacto where p.Ingreso=1 and MONTH(pc.FechaNac)=MONTH(GETDATE()) and DAY(pc.FechaNac)=DAY(GETDATE())+1

GO --Pregunta numero 8 CREATE PROCEDURE uspListarxPerAcad @IDPerAcad varchar(6) AS SELECT DISTINCT Paterno+' '+Materno+' '+Nombres AS [Apellidos y Nombres] ,ROW_NUMBER() over(order by C.Paterno) AS [N] FROM Persona.Postulante AS P,Persona.Contacto AS C WHERE P.IDContacto=C.IDContacto AND P.IDPerAcad=@IDPerAcad EXEC uspListarxPerAcad '2007-1' /* CREATE PROCEDURE uspListarxPerAcad @IDPerAcad varchar(6) AS SELECT DISTINCT Paterno+' '+Materno+' '+Nombres AS [Apellidos y Nombres] ,ROW_NUMBER() over(partition by P.IDPerAcad order by C.Paterno) AS [N] FROM Persona.Postulante AS P,Persona.Contacto AS C WHERE P.IDContacto=C.IDContacto AND P.IDPerAcad=@IDPerAcad EXEC uspListarxPerAcad '2005-1' go */ --Pregunta numero 9 declare @IDContacto int set @IDContacto='16' SELECT DISTINCT IDPerAcad ,(SELECT CASE WHEN (COUNT(CASE WHEN P.IDContacto=@IDContacto THEN 1 END))='1' THEN 'X' else ''END) FROM Persona.Postulante as P GROUP BY IDPerAcad --PREGUNTA NUMERO 10 CREATE PROCEDURE uspResumeAlumPostuloxPerAcad AS SELECT DISTINCT C.Paterno+' '+C.Materno+' '+C.Nombres AS [Apellidos y Nombres] ,(SELECT CASE WHEN(COUNT(CASE WHEN P.IDPerAcad='2005-1' THEN 1 END))='1' 'X' else ''END) AS [2005-1] ,(SELECT CASE WHEN(COUNT(CASE WHEN P.IDPerAcad='2005-2' THEN 1 END))='1' 'X' else ''END) AS [2005-2] ,(SELECT CASE WHEN(COUNT(CASE WHEN P.IDPerAcad='2006-1' THEN 1 END))='1' 'X' else ''END) AS [2006-1] ,(SELECT CASE WHEN(COUNT(CASE WHEN P.IDPerAcad='2006-2' THEN 1 END))='1' 'X' else ''END) AS [2006-2] ,(SELECT CASE WHEN(COUNT(CASE WHEN P.IDPerAcad='2007-1' THEN 1 END))='1' 'X' else ''END) AS [2007-1] ,COUNT(CASE WHEN P.IDPerAcad='2005-1' or P.IDPerAcad='2005-2' or P.IDPerAcad='2006-1' or P.IDPerAcad='2006-2' or P.IDPerAcad='2007-1' then '' end) AS [TOTAL] FROM Persona.Postulante as P,Persona.Contacto as C WHERE C.IDContacto=P.IDContacto group By C.Paterno+' '+C.Materno+' '+C.Nombres EXEC uspResumeAlumPostuloxPerAcad go

THEN THEN THEN THEN THEN

--PREGUNTA NUMERO 11 CREATE PROCEDURE uspResumeNotasxPerAcad AS SELECT DISTINCT P.Puntaje ,COUNT(CASE WHEN P.IDPerAcad='2005-1' THEN '2005-1' END) AS [2005-1] ,COUNT(CASE WHEN P.IDPerAcad='2005-2' THEN '2005-2' END) AS [2005-2] ,COUNT(CASE WHEN P.IDPerAcad='2006-1' THEN '2006-1' END) AS [2006-1] ,COUNT(CASE WHEN P.IDPerAcad='2006-2' THEN '2006-2' END) AS [2006-2] ,COUNT(CASE WHEN P.IDPerAcad='2007-1' THEN '2007-1' END) AS [2007-1] ,COUNT(CASE WHEN P.IDPerAcad='2005-1' or P.IDPerAcad='2005-2' or P.IDPerAcad='2006-1' or P.IDPerAcad='2006-2' or P.IDPerAcad='2007-1' then '' end) AS [TOTAL] FROM Persona.Postulante as P group By P.Puntaje EXEC uspResumeNotasxPerAcad go

/* --liste todos los postulante de un determinado periodo acadmico, la --lista debe de estar enumerada y ordenada por apellido paterno, materno y nombres Declare @IDPerAcad varchar(6) set @IDPerAcad='2007-1' SELECT DISTINCT Paterno+' '+Materno+' '+Nombres AS [Apellidos y Nombres] ,ROW_NUMBER() over(partition by P.IDPerAcad order by C.Paterno) AS [N] FROM Persona.Postulante AS P,Persona.Contacto AS C WHERE P.IDContacto=C.IDContacto AND P.IDPerAcad=@IDPerAcad -------------------------------------------------------------------------Muestra los apellidos y nombres de aquellos que postularon (SI o NO) con su edad --y su respectivo genero (Varon o Mujer) SELECT DISTINCT C.Paterno+' '+C.Materno+' '+C.Nombres AS [Apellidos y Nombres] ,CASE WHEN P.AsistioExamen='0' THEN 'NO' else 'SI' END AS [POSTULO] ,DATEDIFF(YY,fechanac,GETDATE())as EDAD ,CASE WHEN C.Genero='1' THEN 'VARON' else 'MUJER' END AS [GENERO] FROM Persona.Postulante AS P,Persona.Contacto AS C WHERE C.IDContacto=P.IDContacto ------------------------------------------------------------------------liste todos los postulante de un determinado periodo acadmico, la --lista debe de estar enumerada y ordenada por apellido paterno, materno y nombres --Esta hecho declarando valores Declare @IDPerAcad varchar(6) set @IDPerAcad='2007-1' SELECT DISTINCT Paterno+' '+Materno+' '+Nombres AS [Apellidos y Nombres] ,ROW_NUMBER() over(partition by P.IDPerAcad order by C.Paterno) AS [N] FROM Persona.Postulante AS P,Persona.Contacto AS C WHERE P.IDContacto=C.IDContacto AND P.IDPerAcad=@IDPerAcad ---------------------------------------------------------------------SELECT P.Puntaje FROM Persona.Postulante AS P,Persona.Contacto AS C Where IDCarrera in ('101','309') GROUP BY P.IDPerAcad,P.Puntaje HAVING COUNT(*)>50 ORDER BY IDPerAcad

SELECT AVG(Puntaje) FROM Persona.Postulante where IDPerAcad='2005-1' GROUP BY IDPerAcad SELECT IDPerAcad,AVG(Puntaje) FROM Persona.Postulante where IDPerAcad='2005-1' or IDPerAcad='2005-2' or IDPerAcad='2006-1' or IDPerAcad='20062' or IDPerAcad='2007-1' GROUP BY IDPerAcad SELECT Puntaje FROM Persona.Postulante where IDPerAcad='2005-1' --------------------------------------------------------------------------------------muestra un cuadro resumen como el siguiente: SELECT DISTINCT P.Puntaje ,COUNT(CASE WHEN P.IDPerAcad='2005-1' THEN '2005-1' END) AS [2005-1] ,COUNT(CASE WHEN P.IDPerAcad='2005-2' THEN '2005-2' END) AS [2005-2] ,COUNT(CASE WHEN P.IDPerAcad='2006-1' THEN '2006-1' END) AS [2006-1] ,COUNT(CASE WHEN P.IDPerAcad='2006-2' THEN '2006-2' END) AS [2006-2] ,COUNT(CASE WHEN P.IDPerAcad='2007-1' THEN '2007-1' END) AS [2007-1] ,COUNT(CASE WHEN P.IDPerAcad='2005-1' or P.IDPerAcad='2005-2' or P.IDPerAcad='2006-1' or P.IDPerAcad='2006-2' or P.IDPerAcad='2007-1' then '' end) AS [TOTAL] FROM Persona.Postulante as P WHERE P.IDPerAcad='2005-1' or P.IDPerAcad='2005-2' or P.IDPerAcad='2006-1' or P.IDPerAcad='2006-2' or P.IDPerAcad='2007-1' group By P.Puntaje ----------------------------------------------------------------------------------------Lista Todos los Postulantes Con su puntaje y el Promedio General de todos los semestres academicos SELECT DISTINCT C.Paterno+' '+C.Materno+' '+C.Nombres AS [Apellidos y Nombres] ,P.Puntaje,(SELECT AVG(Puntaje)FROM Persona.Postulante) FROM Persona.Postulante AS P,Persona.Contacto AS C WHERE P.IDContacto=C.IDContacto -----------------------------------------------------------------------------------------Cuadro Resumen de postulantes que postularon en un determinado periodo academico SELECT DISTINCT C.Paterno+' '+C.Materno+' '+C.Nombres AS [Apellidos y Nombres] ,COUNT(CASE WHEN P.IDPerAcad='2005-1' THEN '2005-1' END) AS [2005-1] ,COUNT(CASE WHEN P.IDPerAcad='2005-2' THEN '2005-2' END) AS [2005-2] ,COUNT(CASE WHEN P.IDPerAcad='2006-1' THEN '2006-1' END) AS [2006-1] ,COUNT(CASE WHEN P.IDPerAcad='2006-2' THEN '2006-2' END) AS [2006-2] ,COUNT(CASE WHEN P.IDPerAcad='2007-1' THEN '2007-1' END) AS [2007-1] ,COUNT(CASE WHEN P.IDPerAcad='2005-1' or P.IDPerAcad='2005-2' or P.IDPerAcad='2006-1' or P.IDPerAcad='2006-2' or P.IDPerAcad='2007-1' then '' end) AS [TOTAL] FROM Persona.Postulante as P,Persona.Contacto as C WHERE C.IDContacto=P.IDContacto group By C.Paterno+' '+C.Materno+' '+C.Nombres */ -------------------------------------------------------------------------------------

10

Anda mungkin juga menyukai