Unir dos tablas

31/03/2005 - 21:26 por Mennegguzzi | Informe spam
Hola, les hago una consulta,

tengo dos tablas con la misma estructura y distintos datos, es un maestro de
clientes de dos empresas pertenecientes al mismo grupo.

lo que necesito es unir las dos tablas para que figuren los mismos clientes
en las dos empresas

hay manera de hacerlo?

tener en cuenta que hay clientes que ya están en las dos tablas y no pueden
quedar repetidos en la unión


después de dejarlas iguales haría un trigger que las actualice en cada
cambio


saludos y muchas gracias desde ya


Pablo

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
01/04/2005 - 14:57 | Informe spam
una pregunta, en una unión como la que propone Maxi, los regitros repetidos
también quedan incluídos, o hay alguna forma de excluirlos



Claro que si. Si las filas repetidas en ambas tablas contienen la misma
informacion, columna por columna, entonces debes usar el operador UNION en
vaez de UNION ALL.

Ejemplo:

select col1, ..., coln from maestro1
union
select col1, ..., coln from maestro2

Si lo que quieres es evitar dupicados, a partir de la clave primaria,
entonces la vista seria aldo asi:

select col1, ..., coln from maestro1 as m1 left join maestro2 as m2
on m1.pk_col = m2.pk_col where m2.pk_col is null
union all
select col1, ..., coln from maestro2 as m2 left join maestro1 as m1
on m2.pk_col = m1.pk_col where m1.pk_col is null


AMB

"Mennegguzzi" wrote:

Ok, entiendo, creo que lo me conviene es hacer tablas temporales,

una pregunta, en una unión como la que propone Maxi, los regitros repetidos
también quedan incluídos, o hay alguna forma de excluirlos

saludos y gracias por la ayuda

Pablo


"Alejandro Mesa" escribió en el
mensaje news:
> Mennegguzzi,
>
> Si entendi bien, deseas insertar en maestro1 las filas de maestro2 que no
> estan en maestro1 y hacer lo mismo con maestro2. Si es asi debes usar
> tablas
> temporales.
>
> select m1.*
> into t1
> from maestro1 as m1 left join maestro2 as m2 on m1.pk_col = m2.pk_col
> where m2.pk_col is null
>
> select m2.*
> into t2
> from maestro2 as m2 left join maestro1 as m1 on m2.pk_col = m1.pk_col
> where m1.pk_col is null
>
> insert into maestro1
> select * from t2
>
> insert into maestro2
> select * from t1
>
> drop table t1, t2
> go
>
>
> AMB
>
> "Mennegguzzi" wrote:
>
>> Hola, les hago una consulta,
>>
>> tengo dos tablas con la misma estructura y distintos datos, es un maestro
>> de
>> clientes de dos empresas pertenecientes al mismo grupo.
>>
>> lo que necesito es unir las dos tablas para que figuren los mismos
>> clientes
>> en las dos empresas
>>
>> hay manera de hacerlo?
>>
>> tener en cuenta que hay clientes que ya están en las dos tablas y no
>> pueden
>> quedar repetidos en la unión
>>
>>
>> después de dejarlas iguales haría un trigger que las actualice en cada
>> cambio
>>
>>
>> saludos y muchas gracias desde ya
>>
>>
>> Pablo
>>
>>
>>



Respuesta Responder a este mensaje
#7 Mennegguzzi
01/04/2005 - 15:27 | Informe spam
Ok, muchas grascias Alejandro

saludos

Pablo



"Alejandro Mesa" escribió en el
mensaje news:
una pregunta, en una unión como la que propone Maxi, los regitros
repetidos
también quedan incluídos, o hay alguna forma de excluirlos



Claro que si. Si las filas repetidas en ambas tablas contienen la misma
informacion, columna por columna, entonces debes usar el operador UNION en
vaez de UNION ALL.

Ejemplo:

select col1, ..., coln from maestro1
union
select col1, ..., coln from maestro2

Si lo que quieres es evitar dupicados, a partir de la clave primaria,
entonces la vista seria aldo asi:

select col1, ..., coln from maestro1 as m1 left join maestro2 as m2
on m1.pk_col = m2.pk_col where m2.pk_col is null
union all
select col1, ..., coln from maestro2 as m2 left join maestro1 as m1
on m2.pk_col = m1.pk_col where m1.pk_col is null


AMB

"Mennegguzzi" wrote:

Ok, entiendo, creo que lo me conviene es hacer tablas temporales,

una pregunta, en una unión como la que propone Maxi, los regitros
repetidos
también quedan incluídos, o hay alguna forma de excluirlos

saludos y gracias por la ayuda

Pablo


"Alejandro Mesa" escribió en el
mensaje news:
> Mennegguzzi,
>
> Si entendi bien, deseas insertar en maestro1 las filas de maestro2 que
> no
> estan en maestro1 y hacer lo mismo con maestro2. Si es asi debes usar
> tablas
> temporales.
>
> select m1.*
> into t1
> from maestro1 as m1 left join maestro2 as m2 on m1.pk_col = m2.pk_col
> where m2.pk_col is null
>
> select m2.*
> into t2
> from maestro2 as m2 left join maestro1 as m1 on m2.pk_col = m1.pk_col
> where m1.pk_col is null
>
> insert into maestro1
> select * from t2
>
> insert into maestro2
> select * from t1
>
> drop table t1, t2
> go
>
>
> AMB
>
> "Mennegguzzi" wrote:
>
>> Hola, les hago una consulta,
>>
>> tengo dos tablas con la misma estructura y distintos datos, es un
>> maestro
>> de
>> clientes de dos empresas pertenecientes al mismo grupo.
>>
>> lo que necesito es unir las dos tablas para que figuren los mismos
>> clientes
>> en las dos empresas
>>
>> hay manera de hacerlo?
>>
>> tener en cuenta que hay clientes que ya están en las dos tablas y no
>> pueden
>> quedar repetidos en la unión
>>
>>
>> después de dejarlas iguales haría un trigger que las actualice en cada
>> cambio
>>
>>
>> saludos y muchas gracias desde ya
>>
>>
>> Pablo
>>
>>
>>



Respuesta Responder a este mensaje
#8 Jose Manuel Davila
02/04/2005 - 17:56 | Informe spam
pero no puedes crear una vista con esta instruccion lo que solo puedes hacer
es un query

saludos


"Maxi" escribió en el mensaje
news:
Hola, puedes armar una vista y usar UNION ALL por ej

CREATE TUVISTA AS

select t1.campos from t1 UNION ALL
select t2.campos from t2


Salu2
Maxi


"Mennegguzzi" escribió en el mensaje
news:
Hola, les hago una consulta,

tengo dos tablas con la misma estructura y distintos datos, es un maestro
de clientes de dos empresas pertenecientes al mismo grupo.

lo que necesito es unir las dos tablas para que figuren los mismos
clientes en las dos empresas

hay manera de hacerlo?

tener en cuenta que hay clientes que ya están en las dos tablas y no
pueden quedar repetidos en la unión


después de dejarlas iguales haría un trigger que las actualice en cada
cambio


saludos y muchas gracias desde ya


Pablo





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida