Union en dos vistas

Tengo dos vistas en las vista1 se generan unos datos automáticamente los cuale son 30, y en la vista dos se ingresan por medio de un sistema, los campos de ambos son SEMANA, VENDEDOR, NIT, CLIENTE, necesito hacer una union con estas dos vistas pero tengo un problema.
En la vista1 los nit son del 1 al 30 por ejemplo, pero muchas veces en la vista2 no ingresan los nit del 1 al 30 entonces necesito que al nit al cual no se ingeso al hacer la consulta me quede en blanco o null
No se si me hice entender.

1 Respuesta

Respuesta
1
No está muy claro porque no se si el campo NIT de la vista 2 solo toma valores del 1 al 30 o puede tomar más pero espero que te ayude:
2 opciones
Opcion1
Si el nit es el campo para relacionar las dos vistas entonces debes indicar que devuelva todos los registros de la vista1 con un left outer join algo así
Select * from vista1 left outer join vista 2 on vista1.nit=vista2.nit
si lo haces con el wizard pinchas sobre la la línea que une los campos y le indicas devolver todos los registros de la vista1
De esta forma te va a devolver siempre 30 registros, los 30 de la vista 1, si en la vista 2 coincide el nit saldrán sus datos y si no coincide saldrá null. Pero los registros de la vista 2 que no compartan Nit no aparecerán
Si lo que quieres es ver todos los registros y en la vista 2 el NIT puede tomar cualquier valor (no solo del 1 al 30)
Haces
select * from vista1
union all
select * from vista2
Te devolverá los 30 primeros resultados de la vista1 más los que tenga la vista2, de esta forma si un nit está en las 2 tablas saldrá 2 veces
Ejemplo: la vista 1 tiene 30 registros la vista2 10
con la opción1 el SQL te devuelde 30 registros siempre
con la opción2 te devuelve 40 independientemente de si comparten NIT o no
Creo que la opción 1 es lo que te interesa pero como indicas que quieres hacer una unión de tablas pues no lo tengo muy claro. Si lo aclaras un poco igual te puedo ayudar
espero que te sirva
No se si has podido resolverlo o hay que aclarar algo
Es que no tengo muchas preguntas activas y es un lío
Si esta resuelto fianaliza

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas