Diagrama Entidad Relación:
/* Exists */
SELECT *
FROM NotaCiclo
INNER JOIN NotaFinal
ON NotaCiclo.CodAlumno
= NotaFinal.CodAlumno
AND
NotaCiclo.CodCurso =
NotaCiclo.CodCurso;
/* NOT
EXISTS */
SELECT
NotaCiclo.CodAlumno,
NotaCiclo.CodCurso,
NotaCiclo.Nota, *
FROM NotaCiclo
LEFT OUTER JOIN NotaFinal
ON NotaCiclo.CodAlumno
= NotaFinal.CodAlumno
AND
NotaCiclo.CodCurso =
NotaCiclo.CodCurso
WHERE
NotaFinal.CodAlumno IS
NULL
AND NotaFinal.CodCurso
IS NULL
AND CodCiclo = 7;
Ejemplo Completo
DECLARE @Ciclo INT = 7
DECLARE @Fecha DATE;
SELECT @Fecha = FechaFin
FROM Ciclo
WHERE CodCiclo =
@Ciclo;
/*
UPDATE Existentes */
UPDATE
NotaFinal
SET
NotaFinal = NotaCiclo.Nota,
NotaFinal.Fecha
= @Fecha
FROM
NotaFinal
INNER JOIN NotaCiclo
ON
NotaFinal.CodAlumno =
NotaCiclo.CodAlumno
AND
NotaFinal.CodCurso =
NotaCiclo.CodCiclo
WHERE
NotaCiclo.CodCiclo =
@Ciclo;
/*
INSERT Valores Nuevos */
INSERT INTO NotaFinal
(CodAlumno, CodCurso, Fecha, NotaFinal)
SELECT
NotaCiclo.CodAlumno,
NotaCiclo.CodCurso,
@Fecha, NotaCiclo.Nota
FROM NotaCiclo
LEFT OUTER JOIN NotaFinal
ON NotaCiclo.CodAlumno
= NotaFinal.CodAlumno
AND
NotaCiclo.CodCurso =
NotaCiclo.CodCurso
WHERE
NotaFinal.CodAlumno IS
NULL
AND NotaFinal.CodCurso
IS NULL
AND CodCiclo =
@Ciclo;
No hay comentarios.:
Publicar un comentario