0% encontró este documento útil (0 votos)
120 vistas10 páginas

Consultas SQL

El documento contiene varias consultas SQL para extraer información de diferentes tablas de una base de datos. Las consultas incluyen filtrar datos por sexo, oficina, rango de fechas y otros criterios; unir tablas; agrupar y contar registros; y realizar cálculos como diferencia de edades.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
120 vistas10 páginas

Consultas SQL

El documento contiene varias consultas SQL para extraer información de diferentes tablas de una base de datos. Las consultas incluyen filtrar datos por sexo, oficina, rango de fechas y otros criterios; unir tablas; agrupar y contar registros; y realizar cálculos como diferencia de edades.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 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

También podría gustarte