SQL Server - Cual es la mejor forma de crear tabla con historia

 
Vista:

Cual es la mejor forma de crear tabla con historia

Publicado por kinetic_brain (67 intervenciones) el 18/11/2010 13:24:54
Estimados Maestros

Cual es la mejor forma de crear una tabla con historia.

tengo una tabla de usuarios con los siguientes campos

RUT
USER
PTO_VTA
COD
AUTORIZACION
NOMBRE
DESC_PTO_VTA

el archivo llega todos los dias con un nombre fijo en formato excel, dentro del excel hay una hoja que es la que se deberia importar, este archivo muchas veces lleva usuarios nuevos la idea es mantener los user antiguos, ademas al insertar voy dejando un campo con la fecha de carga.

mi duda es me sirve utilizar un left join, que pasa si en el archivo que llega no viene un user y este ya esta en la tabla usuario antigua ? que sucede con el inner, necesito cargar todos los que no estan en la tabla2 (carga de ayer). La tabla1 seria la que llega cada dia.

por favor.

saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cual es la mejor forma de crear tabla con histo

Publicado por Loría (56 intervenciones) el 18/11/2010 16:16:24
Buenos días.

Según entiendo tu problema es que al actualizar la lista que viene cada día, no venga un usuario que está en la lista de historial y por ende no se vaya a guardar en la nueva lista de historial, ¿es así?

Bajo esa premisa lo que debes utilizar es un FULL OUTER JOIN entre las dos tablas y guardar todos los usuarios encontrados.

Saludos.

Loría.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cual es la mejor forma de crear tabla con histo

Publicado por kinetic_brain (67 intervenciones) el 18/11/2010 17:11:58
Si gracias,

y cual sería la direfencia si utilizo left outer join
siendo t1 (datos de hoy) y t2 (datos de ayer)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cual es la mejor forma de crear tabla con histo

Publicado por Loría (56 intervenciones) el 18/11/2010 18:15:44
Vamos a ver.

LEFT OUTER JOIN te trae todas las coincidencias entre ambas tablas y todas las que no coincidan del lado izquierdo.

Entonces si tenemos este ejemplo:

tabla1
usuario1
usuario2
usuario3
usuario4

tabla2
usuario1
usuario2
usuario3
usuario5

Nos daría el siguiente resultado
usuario1
usuario2
usuario3
usuario4

Siendo usuario1, usuario2 y usuario3 las coincidencias y usuario4 las no coincidencias del lado izquierdo.

Con un FULL OUTER JOIN traerías todas las coincidencias entre ambas tablas y todas las que no coincidan de ambos lados también.

Nos daría el siguiente resultado entonces:
usuario1
usuario2
usuario3
usuario4
usuario5

Siendo usuario1, usuario2 y usuario3 las coincidencias y usuario4 y usuario5 las no coincidencias de ambos lados (una de cada una respectivamente).

Espero haberme explicado.

Saludos.

Loría.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar