Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

consulta y carga de datos

Estas en el tema de consulta y carga de datos en el foro de Bases de Datos General en Foros del Web. soy novato en sql , tengo el sgte problema. uso sql 2000 tengo una base con 4 taBLAS "inicio" ,valores,curso, materia , informe en la ...
  #1 (permalink)  
Antiguo 08/12/2002, 16:49
 
Fecha de Ingreso: enero-2002
Mensajes: 68
Antigüedad: 22 años, 4 meses
Puntos: 0
consulta y carga de datos

soy novato en sql , tengo el sgte problema. uso sql 2000 tengo una base con 4 taBLAS "inicio" ,valores,curso, materia , informe
en la tabla incio tengo los campos id_materia,id_curso;cant_curso , mes_año
en valores tengo:id_curso, valor_curso
en materia tengo: id_materia, descripcion
en curso tengo: id_curso, descripcion
la tabla Informe tiene que ser poblada con la informacionde la tabla incio mensualmente y contendra los campos:
id_materia,descripcion_materia,id_curso,descripcio n_curso,cant_curso,valor_curso, mes_año

estaba pensando que se puede usar un procedimiento almacenado en la base que se ejecute mensualmente y poble la tabla informe y borre la tabla inicio.

alguien me da una mano para resolver esto?????
  #2 (permalink)  
Antiguo 12/12/2002, 01:45
Avatar de Avelar  
Fecha de Ingreso: noviembre-2002
Ubicación: Ensenada, Baja California, México
Mensajes: 673
Antigüedad: 21 años, 5 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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:44.