Resolución 2do parcial



Crear las tablas haciendo las validaciones y creando los índices que crea necesarias/os

Solo un ejemplo
CREATE TABLE MovCaja (
NumMov int PRIMARY KEY,
NumCenCosto int,
TipMovimiento int,
Importe numeric(10,4),
NumIns int,
NumCuota int,
Fecha datetime,
FOREIGN KEY (NumCenCosto) REFERENCES CentrosCostos,
FOREIGN KEY (NumIns,NumCuota) REFERENCES Cuotas)
/*Considero Ingreso = 1 Egreso = -1*/


Realizar las actualizaciones de datos necesarias (insert y/o update) para registrar que el alumno: Juan Perez, domiciliado en Alvarado 537, con DNI 26.687.698 se inscriba en el curso de "Cocina internacional con recursos locales", dictado por el profesor Andrés Fournier.

Se resolvía simplemente usando los INSERT correspondientes a las tablas Personas, Alumnos, Profesores, Tematicas, Cursos, Inscripciones



Listado alfabético de alumnos que asisten al curso de "Reparación de automotores diesel"
select p.Nombre
from personas p, alumnos a, inscripciones i, cursos c
where
p.NumPer = a.NumPer and
a.NumAlumno = i.NumAlumno and
i.NumCur = c.NumCur and
c.Descripcion = 'Reparacion de automotores diesel'
order by p.Nombre

Cuotas adeudas por el alumno Juan Perez por todos los cursos tomados
select c.* from cuotas c, inscripciones i
where
c.NumIns = i.NumIns and
i.NumAlumno IN
(select NumAlumno from Alumnos a, Personas p
where a.NumPer=p.NumPer and p.Nombre='Juan Perez') and
c.fecVencimiento <>


Listado alfabético de cursos dictados en el primer trimestre del año en curso con la cantidad de inscriptos en cada uno (sin tener en cuenta que se haya completado o no el cupo)

select c.descripcion, count(*)
from cursos c, inscripciones i
where
c.NumCur=i.NumCur and
MONTH(c.FecInicio) IN (1,2,3) and /*Agrego fecha de inicio a la tabla de cursos*/
YEAR(c.FecInicio) = YEAR(getdate())
GROUP BY c.descripcion
ORDER BY c.descripcion

Listado alfabético de los cursos pendientes de inicio por falta de cupo
select c.descripcion, c.cupo, count(*)
from cursos c, inscripciones i
where
c.NumCur=i.NumCur and
c.FecInicio <= getdate() GROUP BY c.descripcion,c.cupo HAVING count(*)<>

Listado de ingresos en el año en curso, clasificado por tipos de curso impartidos.
select t.Tema, sum(m.Importe)from tematicas t, cursos c, inscripciones i, movcaja mwhere
t.NumTem = c.NumTem and
c.NumCur = i.NumCur and
i.NumIns = m.NumIns and
m.TipMovimiento = 1 and /* Considero 1 para ingreso, -1 para egreso */
YEAR(cu.FecInscripcion) = YEAR(getdate()) /*Agrego fecha de inicio a la tabla de cursos*/
GROUP BY t.Tema

Importes totalizados de movimientos de caja por centros de costo en el mes de octubre’2006
select c.Descripcion, sum(m.tipMovimiento * m.Importe) /* Considero 1 para ingreso, -1 para egreso */
from CentrosCostos c, MovCaja m
where
c.NumCenCosto = m.NumCenCosto and
month(m.Fecha) = 10 and
year(m.Fecha) = 2006 /*Agrego Fecha a la tabla de movimientos de caja*/

GROUP BY c.Descripcion

2 comentarios:

El Mazter dijo...

Profesor y las Notas...Aun no estan??? El Recuperatorio sera mas Facil??? Arrieta Benito

Guillermo dijo...

Benito, las notas están publicadas desde las 9:00 en la Universidad y ahora tambien podes ver la nomina de aprobados acá en el sitio.
Dificilmente sea mas fácil por que el parcial fue demasiado fácil.
Saludos