![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
12/12/2002, 01:45
|
![Avatar de Avelar](http://static.forosdelweb.com/customavatars/avatar25503_1.gif) | | | Fecha de Ingreso: noviembre-2002 Ubicación: Ensenada, Baja California, México
Mensajes: 673
Antigüedad: 22 años, 3 meses Puntos: 1 | |
Dentro del procedimiento que crearás, agrega este código:
Código:
/*** SI LA TABLA INFORME SE POBLARÁ SÓLO CON LOS REGISTROS DEL PERIODO QUE ACABA DE PASAR, ELIMINAR PRIMERO SUS REGISTROS ***/
*** OOOJJJOOO: SI SE DESEA CONSERVAR TODOS LOS REGISTROS HISTÓRICOS DE PERÍODOS ANTERIORES EN LA TABLA INFORME, NO AGREGUES ***
*** ESTA LÍNEA A TU PROCEDIMIENTO ALMACENADO ***/
DELETE FROM informe
/*** COPIAR LOS REGISTROS A LA TABLA INFORME PROCURANDO NO DUPLICARLOS (O NO CREAR ERROR EN CASO DE QUE HAYA CAMPOS LLAVE) ***/
INSERT INTO Informe
SELECT 'id_materia' = I.id_materia,
'descripcion_materia' = M.descripcion,
'id_curso' = I.id_curso,
'descripcion_curso' = C.descripcion,
'cant_curso' = I.cant_curso,
'valor_curso' = V.valor_curso,
'mes_año' = I.mes_año
FROM Inicio AS I,
Valores AS V,
Materia AS M,
Curso AS C
WHERE I.id_materia = M.id_materia
AND I.id_curso = V.id_curso
AND I.id_curso = V.id_curso
AND I.id_materia NOT IN (SELECT id_materia
FROM Inicio
WHERE id_materia = I.id_materia
AND id_curso = I.id_curso
AND mes_año = I.mes_año
)
ORDER BY id_materia ASC,
id_curso ASC,
mes_año ASC
/*** ELIMINAR LOS REGISTROS DE LA TABLA INICIO ***/
-- Con esta instrucción te elimina TODOS los registros de la tabla Inicio; puedes agregarle una condición de que
-- te elimine solamente los registros que existan en la tabla informe. Si le agregas dicha condición y al final
-- de executar el SP aún existen registros en la tabla Inicio, significa que hubo inconsistencia en los datos de
-- las tablas.
DELETE FROM inicio
__________________ Ariel Avelar |