SQL EJERCICIOS
USE ESTUDIANTESNT
GO
SELECT *
FROM ESTUDIANTE JOIN DOCUMENTO
ON ESTUDIANTE.fk_tipoDocumentoId=DOCUMENTO.pk_tipoDocumentoId
WHERE DOCUMENTO.pk_tipoDocumentoId = 1
USE ESTUDIANTESNT
GO
SELECT DOCUMENTO.Nombre_documento, [Link],
[Link],[Link],[Link]
FROM ESTUDIANTE JOIN DOCUMENTO
ON ESTUDIANTE.fk_tipoDocumentoId=DOCUMENTO.pk_tipoDocumentoId
WHERE DOCUMENTO.pk_tipoDocumentoId = 1
SEGÚN ELGENERO
USE ESTUDIANTESNT
GO
SELECT
[Link],[Link],[Link],[Link]
xo
FROM ESTUDIANTE JOIN SEXO
ON SEXO.pk_sexoId=ESTUDIANTE.fk_sexoId
WHERE SEXO.pk_sexoId= 1
EJERCICIO
Realizar un query que perita mostrar los nombres completos de todos los estudiantes
del Nelson torres int que tengan como documento de identificación sea un pasaporte
USE ESTUDIANTESNT
GO
SELECT
DOCUMENTO.Nombre_documento,[Link],[Link],
[Link], [Link],[Link]
FROM ESTUDIANTE JOIN DOCUMENTO
ON DOCUMENTO.pk_tipoDocumentoId=ESTUDIANTE.fk_tipoDocumentoId
WHERE DOCUMENTO.pk_tipoDocumentoId= 1
(Y la identificación sea pichincha)
AND numeroIdentificacion like '%17%'
Realizer un query que permita mostrar numero de cedula , primer apellido , fecha de
nacimiento de todas la mujeres que muester genero de todas las mujeres que hayan
inicado la carrera en el año 2015
USE ESTUDIANTESNT
GO
SELECT [Link],[Link],[Link],
[Link], [Link], [Link]
FROM ESTUDIANTE JOIN GENERO
ON GENERO.pk_generoId=ESTUDIANTE.fk_generoId
WHERE ESTUDIANTE.fk_generoId = 2 AND [Link] like '%2015%'
CLASE JOIN DE TRES TABLAS
TRABAJAR EN UN QUERY QUE PERMITA OBTENER LOS SIGUIENTES DATOS DE TODAS LAS ESTUDIANTES (SEXO MUJER)
DEL INSTITUTO NELSON TORRES QUE TENGAN COMO OCUMENTOO DE IDENTIFICACION LA CEDULA DE IDENTIDAD
USE ESTUDIANTESNT1
GO
SELECT [Link],[Link], [Link],
[Link], [Link], DOCUMENTO.Nombre_documento
FROM (ESTUDIANTE JOIN SEXO
ON SEXO.pk_sexoId = ESTUDIANTE.fk_sexoId)
JOIN DOCUMENTO
ON DOCUMENTO.pk_tipoDocumentoId=ESTUDIANTE.fk_tipoDocumentoId
WHERE SEXO.pk_sexoId=2
Todos los estudiantes de int que sean solteros y que su tipo de sangre sean O+
EJRCICIO
USE ESTUDIANTESNT1 -- MOSTRAR LOS DATOS DE LOS ESTUDIANTES
GO ---QUE PROVENE DE COLEGIO FISCAL Y ETNIA
SELECT [Link],[Link],
[Link],[Link],[Link],[Link]
egio
from (ESTUDIANTE join ETNIA
ON ETNIA.pk_etniaId = ESTUDIANTE.fk_etniaId)--ACEMOS LA UNION PRIMERO DE DOS TABLAS
JOIN TIPOCOLEGIO
ON TIPOCOLEGIO.pk_tipoColegioId =ESTUDIANTE.fk_tipoColegioId
where ETNIA.pk_etniaId = 1 AND TIPOCOLEGIO.pk_tipoColegioId = 1
DEBR JUNTADO DE TRES TABLAS DENUSTRA BASEDE DATOS
DEBER UNION TRES TABLAS DE ACADEMIA
USE ACADEMIA
GO
--SELECT * FROM DOCENTES
SELECT [Link], [Link], [Link],
CURSOS.Fecha_inicio, [Link]
FROM (ESTUDIANTES JOIN CURSOS
ON ESTUDIANTES.Id_estudiantes = CURSOS.Id_Fk_estudiantes)
JOIN DOCENTES
ON ESTUDIANTES.Id_Fk_docentes= DOCENTES.Id_docentes
WHERE [Link] = 'Cayambe'
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
CLASE NUEVA COUNT
Ejemplos
USE ESTUDIANTESNT
GO
SELECT *
FROM ESTUDIANTE
WHERE fk_tipoDiscapacidad < '7'
----------------------------------------
USE ESTUDIANTESNT
GO
SACAR PROMEDIO
USE ESTUDIANTESNT
GO
SELECT AVG (ingresoTotalHogar)
FROM ESTUDIANTE
SELECT *
FROM ESTUDIANTE
WHERE fechaNacimiento like '%1990%'
USE ESTUDIANTESNT
GO
SELECT SUM (cantidadMiembrosHogar)
FROM ESTUDIANTE
USE ESTUDIANTESNT
GO
SELECT MAX (ingresoTotalHogar)
FROM ESTUDIANTE
USE ESTUDIANTESNT
GO
SELECT MIN (ingresoTotalHogar)
FROM ESTUDIANTE
DEBER
Realizar los siguientes reportes contar el número de estudiantes cuy ultimo digito
de cedula sea 0
Contar el número de estudiantes de sexo femenino cuyo correo electrónico sea de
yahoo
Marca todos los padres de familia cuyo nivel de formación sea superior a un nivel
universitario
Sumar todas las madres de familia cuyo nivel de formación sea primaria
Calcular el promedio de los ingresos familiares de los estudiantes de sexo masculino
cuyo tipo de sangre sea A+
Contar el numero de chicas cuya etnia sea indígena
Preparar un reporte que muestre los siguientes datos números completos, numero de
cedula,nivel académico que cursa, sexo , teléfono, paralelo, tipo de colegio al que
pertenece de todos los estudiantes cuyo ingreso familiar sea inferior a 400 dolare
ssu estado civil sea soltera y pertenesca a unmm hogar cuyo total de miembros del
hogar no supere las 5 personas , (AL FINALSE DEBE MOSTRAR EL NUMERO TOTAL DE
ESTUDIANTES INCLUIDOS EN EL REPORTE.(consultar)).
1.- USE ESTUDIANTESNT
GO
SELECT COUNT (*) FROM ESTUDIANTE
WHERE numeroIdentificacion like '%0'
2.- USE ESTUDIANTESNT
GO
SELECT COUNT (*) FROM ESTUDIANTE
WHERE fk_sexoId like '%2' AND correoElectronico like '%yahoo%'
3.- USE ESTUDIANTESNT
GO
SELECT COUNT (*) FROM ESTUDIANTE
WHERE fk_nivelFormacionPadre = 8
4.- USE ESTUDIANTESNT
GO
SELECT COUNT (*) FROM ESTUDIANTE
WHERE fk_nivelFormacionMadre = 3
5.- USE ESTUDIANTESNT
GO
SELECT AVG (ingresoTotalHogar) FROM ESTUDIANTE
WHERE fk_sexoId = 1 AND fk_tipoSangre = 1
6.- USE ESTUDIANTESNT
GO
SELECT COUNT (*) FROM ESTUDIANTE
WHERE fk_sexoId =2 AND fk_etniaId = 1
7.-
USE ESTUDIANTESNT
GO
SELECT [Link], [Link], [Link],
[Link], [Link],
[Link], [Link], [Link],
[Link], [Link]
FROM (ESTUDIANTE join NIVELACADEMICO
on NIVELACADEMICO.pk_nivelAcademicoQueCursa=ESTUDIANTE.fk_nivelAcademicoQueCursa)
join PARALELO
on PARALELO.pk_paraleloId=ESTUDIANTE.fk_paraleloId
join SEXO
ON SEXO.pk_sexoId=ESTUDIANTE.fk_sexoId
join TIPOCOLEGIO
on TIPOCOLEGIO.pk_tipoColegioId=ESTUDIANTE.fk_tipoColegioId
where ([Link] < 400 and ESTUDIANTE.fk_estadocivilId=1) and
[Link] < 5
3._ todos los estudiantes cuyo nivel de formación de la madre sea primaria y el
nivel de de formación del padre sea secundaria
1USE ESTUDIANTESNT2
GO
select
numeroIdentificacion,primerApellido,primerNombre,fk_nivelFormacionMadre,fk_nivelForm
acionPadre,estadocivil,fechaNacimiento,nivelacademico,correoElectronico
from ESTUDIANTE join NIVELACADEMICO
on pk_nivelAcademicoQueCursa =fk_nivelAcademicoQueCursa
join ESTADOCIVIL
on pk_estadocivilId = fk_estadocivilId
WHERE fk_nivelFormacionMadre =3 AND fk_nivelFormacionPadre =5
Examen
USE ESTUDIANTESNT2
GO
select numeroIdentificacion,primerApellido,segundoApellido ,primerNombre,
segundoNombre, numeroCelular, fk_estadocivilId,correoElectronico, fk_etniaId,
ingresoTotalHogar, fk_nivelFormacionPadre, cantidadMiembrosHogar
from ESTUDIANTE join INGRESOSESTUDIANTE
on pk_ingresosestudianteId = fk_ingresosestudianteId
WHERE (ESTUDIANTE.fk_nivelFormacionPadre < 5) AND ingresoTotalHogar < 380 AND
cantidadMiembrosHogar < 3
…………………………………………………………………………………………… 2do BIMESTRE…………………………………………………………………..
LISTAR REGISTROS EN UN ORDEN DETERMINADO
Para ello se debe considera que un
E ordenamiento se lo hace al final del query
Se debe especificar el nombre del campo (atributo) por el
cual se desea ordenar (ascendente-descendentemente)
ORDER BY: es para ordenar datos
Sintaxis
ORDER BY NOMBRE DEL CAMPO (ASC-DESC)
SELECT DATOS
FROM TABLAS
WHERE CONDICION EVALUACION
ORDER BY DATO (CAMPO O ATRIBUTO)
>= MAYOR = POSTERIOR
EJEMPLO <= MENOR= INFERIOR
SELECT DATOS
FROM TABLAS
WHERE CONDICION EVALUACION
ORDER BY DATO (CAMPO O ATRIBUTO)
SELECT primerApellido,primerNombre
FROM ESTUDIANTE
WHERE fechaNacimiento > '01/01/1993'
ORDER BY primerApellido ASC
AGRUPACION DE DATOS
Permite agrupadr FILAS según las columnas (campo o atributo )
Que se indiquen como parámetros, se debe considerar que
CUANDO SE AGRUPA SOLO SE PUEDE SELECCIONAR LOS CAMPOS
AGRUPADOS
EJEMPLOS
SELECT primerApellido,primerNombre, sexo
FROM ESTUDIANTE JOIN SEXO
ON fk_sexoId=pk_sexoId
--WHERE fechaNacimiento > '01/01/1993'
--ORDER BY fechaNacimiento ASC
GROUP BY sexo,primerApellido, primerNombre
CONTAR Y AGRUPAR HOMBRE Y MUJERE DEL INT
SELECT
sexo, COUNT (*) AS TOTAL
FROM ESTUDIANTE JOIN SEXO
ON fk_sexoId=pk_sexoId
GROUP BY sexo
DEBER
Realizar un query que permita mostrar etnia, estado civil , nivel academico, y total
Consultar
Uso de variables en sql y sentencias de control en sql
EJERCICIO DE TALLER
realizar un query que permita contar el numero de estudiantes
mujeres y solteras cuyo numero de cedula termine en 7
SELECT [Link], ESTADOCIVIL, count (*) as total
FROM ESTUDIANTE join SEXO
on sexo.pk_sexoId = ESTUDIANTE.fk_sexoId
join ESTADOCIVIL
on ESTUDIANTE.fk_estadocivilId = ESTADOCIVIL.pk_estadocivilId
where SEXO.pk_sexoId = 2 and ESTADOCIVIL.pk_estadocivilId = 1 and
[Link] like '%7'
group by [Link], ESTADOCIVIL
PROGRAMACIÓN TRANSACKT SQL 20/08/2018
O implementación de estructuras de programación en SQL
QUE ES UNA VARIABLE.- Es un lugar en dode se guarda temporalmente un dato lo que es decir es
una entidad a la que seasigna un valor y este valor puede cambiar durante el proceso, donde se utiliza
la varible generalmente en SQL seseusa dos tipos de variable:
GLOBALES
LOCALES .- Son definidas por el [Link] variables locales d¿se
declaran atraves de un nombre y se define usando la palabra reservada y
reciben un valor inicial mediante la instrucción, SELECT O SET.
Son las varisble que yo utilizo como programador las que yo
creo coomo técnico
Siempre los nombres de la variables empiezan con el simbolo @
A cada variable local se le debe asignar un tipo de dato. (definida por el
usuario)
Sintaxis:
DECLARE.- @Nombre Variable Tipo Dato
DECLARE @prueba varchar (50)
Asignar un valor de una variable
SET= (valor inicial el cual arancamos)
SET @VARIABLE =VALOR ejemplo
DECLARE @Fecha (Date)
SET @fecha =’01/011/2018’
Mostrar el resultado de una variable:
PRINT (IMPRIMIR)
PRINT ’Comentario’ + (@VARIABLE) ejemplo
PRINT ‘La fecha inicial e’ + (@fecha)
SENTENCIA DE CONTROL PARA LOS GLOBALES USAMOS @
If PARA LOS GLOBALES USAMOS @@
For
While
case
ejemplo
variable para sumar dos valores tipo entero
[Link]
int numero1,numero2,reultado,
console WriteLine (‘Ingrese 1’);
VARIABLE GLOBAL
Son suministradas por el sistema y esta predefinidas por el sistema estas
son:
VERSIÓN= devuelve la versión con la que se esta trabajando
SEVERNAME = devuelve el nombre del servidor
LANGUAGE = devuelve el lenguaje del servidor o del motor
MAX CONECTION = devuelv el numero máximo de conexciones
permitidas en ese servidor
ERROR = devuekve el ultimo error generado en una transacción
IDENTY = devuelve el ultimo valor de un ataributo IDENTITY (llaves
primarias) mediante reset.
USE ESTUDIANTESNT2
GO
--PRINT 'la nombre de este motor de base de datos es:' + @@SERVERNAME;
--PRINT 'El lwnguaje de este motor de base de datos es:' + @@LANGUAGE;
--PRINT 'la version de este motor de base de datos es:' + @@VERSION;
--PRINT 'el numero de conecciones permitidas es:' + STR (@@MAX_CONNECTIONS);
PRINT 'el numero de conecciones permitidas es:' + STR (@@IDENTITY)
HERRAMIENTAS PARA EL CONTROL DE FLUIDO
El lenguaje SQL puede utilizar instrucciones de control de flujo y estas puede
utilizar con:
INSTRUCCIONES INTERACTIVAS.- define la ejecución cuando la condición de
evaluación es verdadera
SINTAXIS:
IF (condición evaluación)
BEGIN
--
--
--
END
ELSE
BEGIN
--
--
--
END
Instrucciones en lotes
Instrucciones en procedimientos almacenados
EJERCICIOS
Realizar un Query que permita verificar si un estudiante se encuentre mutilando en el
INT en tal caso se debe proveer a ese estudiante al nivel superior caso contrario al nivel
inferior
1.-busco al estudiante
2.-controlar si el estudiante está matriculado (nivel)
3.- si está matriculado promueva de nivel (suba nivel)
En caso contrario escribir los datos del estudiante (bajar nivel)
el siguiente query muestra el primer nombre, segundo nombre,primer apellido,
segundo apellido de una estudiante cuyo numero de cedula se conoca en caso de
que
el estudiante este en la base de datos se debe desplegar sus nombres completos y
nivel academico que cursa
USE ESTUDIANTESNT2
GO
--SELECT * FROM ESTUDIANTE
DECLARE @cedula VARCHAR (15)
SET @cedula = '1723973713'
SELECT numeroIdentificacion,
primerNombre,segundoNombre,primerApellido,fk_nivelAcademicoQueCursa
from ESTUDIANTE
WHERE numeroIdentificacion = @cedula
USE ESTUDIANTESNT2
GO
--SELECT * FROM ESTUDIANTE
DECLARE @cedula VARCHAR (15)
SET @cedula = '111111111'
IF EXISTS (SELECT numeroIdentificacion,
primerNombre,segundoNombre,primerApellido,fk_nivelAcademicoQueCursa
from ESTUDIANTE
WHERE numeroIdentificacion = @cedula)
BEGIN
SELECT numeroIdentificacion,
primerNombre,segundoNombre,primerApellido,fk_nivelAcademicoQueCursa
FROM ESTUDIANTE
WHERE numeroIdentificacion = @cedula
END
ELSE
BEGIN
SELECT * FROM ESTUDIANTE
END
PARA INSERTAR UN ESTUDIANTE
DECLARE @cedula VARCHAR (15)
SET @cedula = '111111111'
IF EXISTS (SELECT numeroIdentificacion,
primerNombre,segundoNombre,primerApellido,fk_nivelAcademicoQueCursa
from ESTUDIANTE
WHERE numeroIdentificacion = @cedula)
BEGIN
UPDATE ESTUDIANTE SET fk_nivelAcademicoQueCursa = fk_nivelAcademicoQueCursa+1
WHERE numeroIdentificacion = @cedula
END
ELSE
BEGIN
INSERT INTO ESTUDIANTE
(numeroCelular,primerNombre,segundoNombre,primerApellido,segundoApellido,
fk_nivelAcademicoQueCursa)
VALUES
('1111122222','JUAN','FERNANDO','TORRES', 'DEL OCHO',1)
END
SELECT * FROM ESTUDIANTE
DEBER
1. Realizar un query (usando la sentencia IF), que permita. Contar todos los
registros de una base de datos si uno de ellos contiene en el primer nombre
MARIA.
DECLARE @nombre VARCHAR(10)
SET @nombre = 'MARIA'
IF EXISTS(
SELECT *
FROM ESTUDIANTESINT
)
BEGIN
SELECT primerNombre,COUNT (*) AS 'VALOR_T'
FROM ESTUDIANTESINT
WHERE primerNombre = @nombre
GROUP BY primerNombre
END
--2 Realizar un query (usando la sentencia IF), que permita. Contar los registros de
todos los estudiantes si los estudiantes pertenecen a primer nivel.
DECLARE @nivel VARCHAR (1)
SET @nivel = '1'
IF EXISTS(
SELECT *
FROM ESTUDIANTESINT
)
BEGIN
SELECT COUNT (*) AS N_REG
FROM ESTUDIANTESINT
WHERE fk_nivelAcademicoQueCursa = @nivel
END
--3. Realizar un query que permita. Contar los registros de todos los estudiantes
nacidos en la provincia diferente a la provincia de pichincha.
SELECT COUNT (*)
FROM ESTUDIANTESINT
WHERE fk_provinciaNacimientoId <> '17'
--4.- realizar un query que permita. contar los registros de todos los estudiantes
nscidos en el canton cayambe
USE ESTUDIANTESNT
GO
DECLARE @cantonNacimiento VARCHAR (10)
SET @cantonNacimiento = '1702'
IF EXISTS (SELECT fk_cantonNacimientoId
FROM ESTUDIANTESINT
WHERE ESTUDIANTESINT.fk_cantonNacimientoId = @cantonNacimiento
)
BEGIN
SELECT COUNT (*) AS TOTAL
FROM ESTUDIANTESINT
WHERE ESTUDIANTESINT.fk_cantonNacimientoId = @cantonNacimiento
END
ELSE
BEGIN
SELECT * FROM ESTUDIANTESINT
END
5. Realizar un query que permita. Mostrar los siguientes datos agrupados por escuela: • Nombres completos
del estudiante. • Número de cédula • Sexo • Fecha de nacimiento • Cantón de nacimiento
USE ESTUDIANTESNT
GO
SELECT
primerNombre,segundoNombre,primerApellido,segundoApellido,numeroIdentificacion,sexo,
fechaNacimiento,canton,carrera
FROM ESTUDIANTESINT JOIN CARRERAS ON
CARRERAS.pk_carreraid=ESTUDIANTESINT.fk_carreraid
JOIN SEXO ON SEXO.pk_sexoId=
ESTUDIANTESINT.fk_sexoId
JOIN CANTON ON
CANTON.pk_cantonNacimientoId=ESTUDIANTESINT.fk_cantonResidenciaId
GROUP BY
primerNombre,segundonombre,primerApellido,segundoApellido,numeroIdentificacion,sexo,
fechaNacimiento,canton,carrera
--6./ relaizar un query que permita mostrar los siguientes datos agrupados por
escuela, se debe contar cuantas mujeres y cuantos hombres;
--nombres completos del estudiante, numero de cedula , sexo , fecha de nacimiento,
canton de nacimiento.
USE ESTUDIANTESNT
GO
SELECT [Link], [Link], COUNT(*) AS TOTAL
FROM ESTUDIANTESINT JOIN SEXO ON SEXO.pk_sexoId = ESTUDIANTESINT.fk_sexoId
JOIN CARRERAS ON CARRERAS.pk_carreraid =
ESTUDIANTESINT.fk_carreraId
GROUP BY [Link], [Link]
--7. Realizar un query que permita. Mostrar los siguientes datos
-- Número de cédula
-- Sexo
-- Fecha de nacimiento
-- Cantón de nacimiento
--A. Considerando que si el último dígito de cédula está entre 1 y 5, se debe
desplegar un mensaje que diga: su día de matrícula es lunes.
--B. Considerando que si el último dígito de cédula es 2 y 6, se debe desplegar un
mensaje que diga: su día de matrícula es martes.
--C. Considerando que si el último dígito de cédula es 3 y 7, se debe desplegar un
mensaje que diga: su día de matrícula es miércoles
--D. Considerando que si el último dígito de cédula es 4 y 8 se debe desplegar un
mensaje que diga: su día de matrícula es jueves
--E. Considerando que si el último dígito de cédula es 9 ó 0 se debe desplegar un
mensaje que diga: su día de matrícula es viernes
USE ESTUDIANTESNT
GO
IF EXISTS(SELECT
[Link],[Link],[Link]
do,[Link],[Link],[Link]
roIdentificacion,[Link],[Link]
FROM (ESTUDIANTESINT JOIN CANTON ON CANTON.pk_cantonNacimientoId
=ESTUDIANTESINT.fk_cantonResidenciaId)JOIN SEXO ON
SEXO.pk_sexoId = ESTUDIANTESINT.fk_sexoId
GROUP BY
[Link],[Link],[Link]
do,[Link],[Link],[Link]
roIdentificacion,[Link],[Link]
)
BEGIN
SELECT
[Link],[Link],[Link]
do,[Link],[Link],[Link]
roIdentificacion,[Link],[Link]
FROM (ESTUDIANTESINT JOIN CANTON ON CANTON.pk_cantonNacimientoId
=ESTUDIANTESINT.fk_cantonResidenciaId)JOIN SEXO ON
SEXO.pk_sexoId = ESTUDIANTESINT.fk_sexoId where numeroIdentificacion like'%1' or
numeroIdentificacion like'%5'
GROUP BY
[Link],[Link],[Link]
do,[Link],[Link],[Link]
roIdentificacion,[Link],[Link]
PRINT N'SU DIA DE MATRICULA ES LUNES.';
END
BEGIN
SELECT
[Link],[Link],[Link]
do,[Link],[Link],[Link]
roIdentificacion,[Link],[Link]
FROM (ESTUDIANTESINT JOIN CANTON ON CANTON.pk_cantonNacimientoId
=ESTUDIANTESINT.fk_cantonResidenciaId)JOIN SEXO ON
SEXO.pk_sexoId = ESTUDIANTESINT.fk_sexoId where numeroIdentificacion like'%2' or
numeroIdentificacion like'%6'
GROUP BY
[Link],[Link],[Link]
do,[Link],[Link],[Link]
roIdentificacion,[Link],[Link]
PRINT N'SU DIA DE MATRICULA ES MARTES.';
END
BEGIN
SELECT
[Link],[Link],[Link]
do,[Link],[Link],[Link]
roIdentificacion,[Link],[Link]
FROM (ESTUDIANTESINT JOIN CANTON ON CANTON.pk_cantonNacimientoId
=ESTUDIANTESINT.fk_cantonResidenciaId)JOIN SEXO ON
SEXO.pk_sexoId = ESTUDIANTESINT.fk_sexoId where numeroIdentificacion like'%3' or
numeroIdentificacion like'%7'
GROUP BY
[Link],[Link],[Link]
do,[Link],[Link],[Link]
roIdentificacion,[Link],[Link]
PRINT N'SU DIA DE MATRICULA ES MIERCOLES.';
END
BEGIN
SELECT
[Link],[Link],[Link]
do,[Link],[Link],[Link]
roIdentificacion,[Link],[Link]
FROM (ESTUDIANTESINT JOIN CANTON ON CANTON.pk_cantonNacimientoId
=ESTUDIANTESINT.fk_cantonResidenciaId)JOIN SEXO ON
SEXO.pk_sexoId = ESTUDIANTESINT.fk_sexoId where numeroIdentificacion like'%4' or
numeroIdentificacion like'%8'
GROUP BY
[Link],[Link],[Link]
do,[Link],[Link],[Link]
roIdentificacion,[Link],[Link]
PRINT N'SU DIA DE MATRICULA ES JUEVES.';
END
BEGIN
SELECT
[Link],[Link],[Link]
do,[Link],[Link],[Link]
roIdentificacion,[Link],[Link]
FROM (ESTUDIANTESINT JOIN CANTON ON CANTON.pk_cantonNacimientoId
=ESTUDIANTESINT.fk_cantonResidenciaId)JOIN SEXO ON
SEXO.pk_sexoId = ESTUDIANTESINT.fk_sexoId where numeroIdentificacion like'%9' or
numeroIdentificacion like'%0'
GROUP BY
[Link],[Link],[Link]
do,[Link],[Link],[Link]
roIdentificacion,[Link],[Link]
PRINT N'SU DIA DE MATRICULA ES VIERNES.';
END
--8. Realizar un query que permita. Mostrar los siguientes datos:
--Nombres completos,
--tipo de sangre,
--sexo,
--estado civil,
--etnia,
--provincia de nacimiento,
--cantón de nacimiento
--,correo electrónico y celular
--(para todos los datos no se deben NO se deben mostrar códigos, se debe mostrar la
información correspondiente a cada campo):
--Si el estudiante es hombre se debe darle un bono de 100 dólares adicionales al
ingreso total del hogar, si el estudiante es mujer se debe quitarle 100 dólares del
ingreso total del hogar del estudiante.
USE ESTUDIANTESNT
GO
DECLARE @hombre VARCHAR(15)
SET @hombre='HOMBRE'
DECLARE @mujer VARCHAR(15)
SET @mujer='MUJER'
IF EXISTS( SELECT [Link],
[Link],[Link],[Link]
do,[Link],[Link]
,[Link],[Link],[Link],[Link],[Link],EST
[Link],[Link]
FROM (ESTUDIANTESINT JOIN CANTON ON CANTON.pk_cantonNacimientoId
=ESTUDIANTESINT.fk_cantonResidenciaId)JOIN SEXO ON
SEXO.pk_sexoId = ESTUDIANTESINT.fk_sexoId JOIN TIPOSANGRE ON
TIPOSANGRE.pk_tipoSangre=ESTUDIANTESINT.fk_tipoSangre JOIN ESTADOCIVIL ON
ESTADOCIVIL.pk_estadocivilId = ESTUDIANTESINT.fk_estadocivilId JOIN ETNIA ON
ETNIA.pk_etniaId=ESTUDIANTESINT.fk_etniaId JOIN PROVINCIA ON
PROVINCIA.pk_provinciaNacimientoId=ESTUDIANTESINT.fk_provinciaResidenciaId
where [Link] = @hombre
)
BEGIN
SELECT [Link]
,[Link],[Link],[Link]
ido,[Link],[Link]
,[Link],[Link],[Link],[Link],[Link],EST
[Link],[Link]
FROM (ESTUDIANTESINT JOIN CANTON ON CANTON.pk_cantonNacimientoId
=ESTUDIANTESINT.fk_cantonResidenciaId)JOIN SEXO ON
SEXO.pk_sexoId = ESTUDIANTESINT.fk_sexoId JOIN TIPOSANGRE ON
TIPOSANGRE.pk_tipoSangre=ESTUDIANTESINT.fk_tipoSangre JOIN ESTADOCIVIL ON
ESTADOCIVIL.pk_estadocivilId = ESTUDIANTESINT.fk_estadocivilId JOIN ETNIA ON
ETNIA.pk_etniaId=ESTUDIANTESINT.fk_etniaId JOIN PROVINCIA ON
PROVINCIA.pk_provinciaNacimientoId=ESTUDIANTESINT.fk_provinciaResidenciaId
where [Link] = @hombre
GROUP BY [Link]
,[Link],[Link],[Link]
ido,[Link],[Link]
,[Link],[Link],[Link],[Link],[Link],EST
[Link],[Link]
UPDATE ESTUDIANTESINT SET ingresoTotalHogar = ingresoTotalHogar + 100 WHERE
fk_sexoId = '1'
END
BEGIN
SELECT [Link]
,[Link],[Link],[Link]
ido,[Link],[Link]
,[Link],[Link],[Link],[Link],[Link],EST
[Link],[Link]
FROM (ESTUDIANTESINT JOIN CANTON ON CANTON.pk_cantonNacimientoId
=ESTUDIANTESINT.fk_cantonResidenciaId)JOIN SEXO ON
SEXO.pk_sexoId = ESTUDIANTESINT.fk_sexoId JOIN TIPOSANGRE ON
TIPOSANGRE.pk_tipoSangre=ESTUDIANTESINT.fk_tipoSangre JOIN ESTADOCIVIL ON
ESTADOCIVIL.pk_estadocivilId = ESTUDIANTESINT.fk_estadocivilId JOIN ETNIA ON
ETNIA.pk_etniaId=ESTUDIANTESINT.fk_etniaId JOIN PROVINCIA ON
PROVINCIA.pk_provinciaNacimientoId=ESTUDIANTESINT.fk_provinciaResidenciaId
where [Link] = @mujer
GROUP BY [Link]
,[Link],[Link],[Link]
ido,[Link],[Link]
,[Link],[Link],[Link],[Link],[Link],EST
[Link],[Link]
UPDATE ESTUDIANTESINT SET ingresoTotalHogar = ingresoTotalHogar +100 WHERE
fk_sexoId = '2'
END
PRUEBA
---REALIZAR UN QUERY QUE PERMITA MOSTRAR LOS SIGUIENTES DATOS TERMINO EN 3 O 4 DEBE
DESPLAZA DIA DE MATRICULA LUNES
USE ESTUDIANTESNT
GO
DECLARE @MENSAJE VARCHAR(50)
SET @MENSAJE='SU MATRICULA ES LUNES'
IF EXISTS (SELECT
numeroIdentificacion,primerNombre,segundoNombre,primerApellido,segundoApellido,tipoS
angre,sexo,fechaNacimiento
FROM ESTUDIANTESINT JOIN SEXO
on pk_sexoId = fk_sexoId
JOIN TIPOSANGRE
on pk_tipoSangre=fk_tipoSangre)
BEGIN
(SELECT
numeroIdentificacion,primerNombre,segundoNombre,primerApellido,segundoApellido,tipoS
angre,sexo,fechaNacimiento,@MENSAJE as MATRICULA
FROM ESTUDIANTESINT JOIN SEXO
on pk_sexoId = fk_sexoId
JOIN TIPOSANGRE
on pk_tipoSangre=fk_tipoSangre
WHERE numeroIdentificacion LIKE '%1' OR numeroIdentificacion LIKE '%2')
END
ELSE
BEGIN
SELECT*FROM ESTUDIANTESINT
END
--Realizar un reporte usando funciones donde se muestre la siguiente informacion
--primer nomnre, primer apellido,numero de identificacion, sexo,edad(en años)
--provincia de nacimiento, canton de nacimiento para todos los estudiantes de tipo
de sangre b+
--nacidos en el cantón Cayambe.
use ESTUDIANTESNT
go
CREATE FUNCTION t(@tip varchar(50))
RETURNS TABLE
AS
RETURN (
SELECT
primerNombre,primerApellido,numeroIdentificacion,[Link],[Link],PROVINCIA.p
rovincia,[Link]
FROM ESTUDIANTESINT
JOIN SEXO ON ESTUDIANTESINT.fk_sexoId=SEXO.pk_sexoId
JOIN CANTON ON ESTUDIANTESINT.fk_cantonNacimientoId=CANTON.pk_cantonId
JOIN PROVINCIA ON
ESTUDIANTESINT.fk_provinciaNacimientoId=PROVINCIA.pk_provinciaNacimientoId
JOIN TIPOSANGRE ON ESTUDIANTESINT.fk_tipoSangre=TIPOSANGRE.pk_tipoSangre
WHERE [Link]=@tip
)
GO
SELECT * FROM dbo.t('B+')