UNION entre tablas

23/11/2004 - 15:42 por .·:m·a·r·l·a:·. | Informe spam
hola a todos

tengo tres tablas que muestran diferentes atributos sobre los mismos
clientes y necesito combinarlas, de manera que:

tabla_1:
-cliente
-caracteristica_1

tabla_2
-cliente
-caracteristica_2

tabla_3
-cliente
-caracteristica_3

tabla_resultado
-cliente
-caracteristica_1
-caracteristica_2
-caracteristica_3

en las tres tablas el cliente (uso una doble key para identificarlo
unicamente) es unico, pero no tienen por que aparecer todos en las tres
tablas

mi pregunta es, me valdria con una simple union ??, como debo hacerlo si no
??


como ejemplo

tabla_1
clienteA casa
clienteB perro

tabla_2
clienteA rojo
clienteC amarillo

tabla_3
clienteB alto
clienteC bajo

tabla_resultado
clienteA casa rojo
clienteB perro alto
clienteC amarillo bajo

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
23/11/2004 - 15:57 | Informe spam
Hola:

Eso se puede hacer de la siguiente forma:

SELECT t1.cliente, t1.caract_1, t2.caract_2, t3.caract_3
FROM tabla_1 AS t1 INNER JOIIN tabla_2 AS t2 ON t1.cliente = t2.cliente
INNER JOIIN tabla_3 AS t3 ON t1.cliente
= t3.cliente

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

".·:m·a·r·l·a:·." escribió en el mensaje
news:
hola a todos

tengo tres tablas que muestran diferentes atributos sobre los mismos
clientes y necesito combinarlas, de manera que:

tabla_1:
-cliente
-caracteristica_1

tabla_2
-cliente
-caracteristica_2

tabla_3
-cliente
-caracteristica_3

tabla_resultado
-cliente
-caracteristica_1
-caracteristica_2
-caracteristica_3

en las tres tablas el cliente (uso una doble key para identificarlo
unicamente) es unico, pero no tienen por que aparecer todos en las tres
tablas

mi pregunta es, me valdria con una simple union ??, como debo hacerlo si
no
??


como ejemplo

tabla_1
clienteA casa
clienteB perro

tabla_2
clienteA rojo
clienteC amarillo

tabla_3
clienteB alto
clienteC bajo

tabla_resultado
clienteA casa rojo
clienteB perro alto
clienteC amarillo bajo


Respuesta Responder a este mensaje
#2 Salvador Ramos
23/11/2004 - 16:02 | Informe spam
Perdón, no leí la parte final del ejemplo. Corrijo:

SELECT t1.cliente, t1.caract_1, t2.caract_2, t3.caract_3
FROM tabla_1 AS t1 FULL OUTER JOIIN tabla_2 AS t2 ON t1.cliente = t2.cliente
FULL OUTER JOIIN tabla_3 AS t3 ON
t1.cliente = t3.cliente


Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

"Salvador Ramos" escribió en el
mensaje news:
Hola:

Eso se puede hacer de la siguiente forma:

SELECT t1.cliente, t1.caract_1, t2.caract_2, t3.caract_3
FROM tabla_1 AS t1 INNER JOIIN tabla_2 AS t2 ON t1.cliente = t2.cliente
INNER JOIIN tabla_3 AS t3 ON
t1.cliente = t3.cliente

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

".·:m·a·r·l·a:·." escribió en el mensaje
news:
hola a todos

tengo tres tablas que muestran diferentes atributos sobre los mismos
clientes y necesito combinarlas, de manera que:

tabla_1:
-cliente
-caracteristica_1

tabla_2
-cliente
-caracteristica_2

tabla_3
-cliente
-caracteristica_3

tabla_resultado
-cliente
-caracteristica_1
-caracteristica_2
-caracteristica_3

en las tres tablas el cliente (uso una doble key para identificarlo
unicamente) es unico, pero no tienen por que aparecer todos en las tres
tablas

mi pregunta es, me valdria con una simple union ??, como debo hacerlo si
no
??


como ejemplo

tabla_1
clienteA casa
clienteB perro

tabla_2
clienteA rojo
clienteC amarillo

tabla_3
clienteB alto
clienteC bajo

tabla_resultado
clienteA casa rojo
clienteB perro alto
clienteC amarillo bajo






Respuesta Responder a este mensaje
#3 Liliana Sorrentino
23/11/2004 - 16:16 | Informe spam
Hola,
Si Salvador me permite, haría una modificación para que salga solo un
renglón por cliente:
SELECT cliente = COALESCE(cliente1, cliente2, cliente3),
dato1 = MAX(ISNULL(dato1, '')),
dato2 = MAX(ISNULL(dato2, '')),
dato3 = MAX(ISNULL(dato3, ''))
FROM #tabla_1
FULL JOIN #tabla_2 ON cliente1 = cliente2
FULL JOIN #tabla_3 ON cliente1 = cliente3
GROUP BY COALESCE(cliente1, cliente2, cliente3)
Saludos,
Liliana.

"Salvador Ramos" escribió en el
mensaje news:#jBf#
Perdón, no leí la parte final del ejemplo. Corrijo:

SELECT t1.cliente, t1.caract_1, t2.caract_2, t3.caract_3
FROM tabla_1 AS t1 FULL OUTER JOIIN tabla_2 AS t2 ON t1.cliente t2.cliente
FULL OUTER JOIIN tabla_3 AS t3 ON
t1.cliente = t3.cliente


Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

"Salvador Ramos" escribió en el
mensaje news:
> Hola:
>
> Eso se puede hacer de la siguiente forma:
>
> SELECT t1.cliente, t1.caract_1, t2.caract_2, t3.caract_3
> FROM tabla_1 AS t1 INNER JOIIN tabla_2 AS t2 ON t1.cliente = t2.cliente
> INNER JOIIN tabla_3 AS t3 ON
> t1.cliente = t3.cliente
>
> Un saludo
> Salvador Ramos
> Murcia - España
> [Microsoft MVP SQL Server]
> www.helpdna.net
> ¿ Te interesa participar en las reuniones
> del grupo de Usuarios de SQL Server y .NET ?
> Se harán en levante de España, (Alicante o Murcia)?
>
> ".·:m·a·r·l·a:·." escribió en el mensaje
> news:
>> hola a todos
>>
>> tengo tres tablas que muestran diferentes atributos sobre los mismos
>> clientes y necesito combinarlas, de manera que:
>>
>> tabla_1:
>> -cliente
>> -caracteristica_1
>>
>> tabla_2
>> -cliente
>> -caracteristica_2
>>
>> tabla_3
>> -cliente
>> -caracteristica_3
>>
>> tabla_resultado
>> -cliente
>> -caracteristica_1
>> -caracteristica_2
>> -caracteristica_3
>>
>> en las tres tablas el cliente (uso una doble key para identificarlo
>> unicamente) es unico, pero no tienen por que aparecer todos en las tres
>> tablas
>>
>> mi pregunta es, me valdria con una simple union ??, como debo hacerlo


si
>> no
>> ??
>>
>>
>> como ejemplo
>>
>> tabla_1
>> clienteA casa
>> clienteB perro
>>
>> tabla_2
>> clienteA rojo
>> clienteC amarillo
>>
>> tabla_3
>> clienteB alto
>> clienteC bajo
>>
>> tabla_resultado
>> clienteA casa rojo
>> clienteB perro alto
>> clienteC amarillo bajo
>>
>>
>
>


Respuesta Responder a este mensaje
#4 .·:m·a·r·l·a:·.
23/11/2004 - 16:18 | Informe spam
muchas gracias, lo implementare y cuento

"Salvador Ramos" wrote in message
news:%23jBf%
Perdón, no leí la parte final del ejemplo. Corrijo:

SELECT t1.cliente, t1.caract_1, t2.caract_2, t3.caract_3
FROM tabla_1 AS t1 FULL OUTER JOIIN tabla_2 AS t2 ON t1.cliente t2.cliente
FULL OUTER JOIIN tabla_3 AS t3 ON
t1.cliente = t3.cliente


Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

"Salvador Ramos" escribió en el
mensaje news:
> Hola:
>
> Eso se puede hacer de la siguiente forma:
>
> SELECT t1.cliente, t1.caract_1, t2.caract_2, t3.caract_3
> FROM tabla_1 AS t1 INNER JOIIN tabla_2 AS t2 ON t1.cliente = t2.cliente
> INNER JOIIN tabla_3 AS t3 ON
> t1.cliente = t3.cliente
>
> Un saludo
> Salvador Ramos
> Murcia - España
> [Microsoft MVP SQL Server]
> www.helpdna.net
> ¿ Te interesa participar en las reuniones
> del grupo de Usuarios de SQL Server y .NET ?
> Se harán en levante de España, (Alicante o Murcia)?
>
> ".·:m·a·r·l·a:·." escribió en el mensaje
> news:
>> hola a todos
>>
>> tengo tres tablas que muestran diferentes atributos sobre los mismos
>> clientes y necesito combinarlas, de manera que:
>>
>> tabla_1:
>> -cliente
>> -caracteristica_1
>>
>> tabla_2
>> -cliente
>> -caracteristica_2
>>
>> tabla_3
>> -cliente
>> -caracteristica_3
>>
>> tabla_resultado
>> -cliente
>> -caracteristica_1
>> -caracteristica_2
>> -caracteristica_3
>>
>> en las tres tablas el cliente (uso una doble key para identificarlo
>> unicamente) es unico, pero no tienen por que aparecer todos en las tres
>> tablas
>>
>> mi pregunta es, me valdria con una simple union ??, como debo hacerlo


si
>> no
>> ??
>>
>>
>> como ejemplo
>>
>> tabla_1
>> clienteA casa
>> clienteB perro
>>
>> tabla_2
>> clienteA rojo
>> clienteC amarillo
>>
>> tabla_3
>> clienteB alto
>> clienteC bajo
>>
>> tabla_resultado
>> clienteA casa rojo
>> clienteB perro alto
>> clienteC amarillo bajo
>>
>>
>
>


Respuesta Responder a este mensaje
#5 Salvador Ramos
23/11/2004 - 19:00 | Informe spam
Por supuesto que te lo permito :-)
No tuve en cuenta la duplicidad de filas de un mismo cliente, y tu la has
solucionado.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

"Liliana Sorrentino" escribió en el mensaje
news:
Hola,
Si Salvador me permite, haría una modificación para que salga solo un
renglón por cliente:
SELECT cliente = COALESCE(cliente1, cliente2, cliente3),
dato1 = MAX(ISNULL(dato1, '')),
dato2 = MAX(ISNULL(dato2, '')),
dato3 = MAX(ISNULL(dato3, ''))
FROM #tabla_1
FULL JOIN #tabla_2 ON cliente1 = cliente2
FULL JOIN #tabla_3 ON cliente1 = cliente3
GROUP BY COALESCE(cliente1, cliente2, cliente3)
Saludos,
Liliana.

"Salvador Ramos" escribió en el
mensaje news:#jBf#
Perdón, no leí la parte final del ejemplo. Corrijo:

SELECT t1.cliente, t1.caract_1, t2.caract_2, t3.caract_3
FROM tabla_1 AS t1 FULL OUTER JOIIN tabla_2 AS t2 ON t1.cliente > t2.cliente
FULL OUTER JOIIN tabla_3 AS t3 ON
t1.cliente = t3.cliente


Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

"Salvador Ramos" escribió en el
mensaje news:
> Hola:
>
> Eso se puede hacer de la siguiente forma:
>
> SELECT t1.cliente, t1.caract_1, t2.caract_2, t3.caract_3
> FROM tabla_1 AS t1 INNER JOIIN tabla_2 AS t2 ON t1.cliente = t2.cliente
> INNER JOIIN tabla_3 AS t3 ON
> t1.cliente = t3.cliente
>
> Un saludo
> Salvador Ramos
> Murcia - España
> [Microsoft MVP SQL Server]
> www.helpdna.net
> ¿ Te interesa participar en las reuniones
> del grupo de Usuarios de SQL Server y .NET ?
> Se harán en levante de España, (Alicante o Murcia)?
>
> ".·:m·a·r·l·a:·." escribió en el mensaje
> news:
>> hola a todos
>>
>> tengo tres tablas que muestran diferentes atributos sobre los mismos
>> clientes y necesito combinarlas, de manera que:
>>
>> tabla_1:
>> -cliente
>> -caracteristica_1
>>
>> tabla_2
>> -cliente
>> -caracteristica_2
>>
>> tabla_3
>> -cliente
>> -caracteristica_3
>>
>> tabla_resultado
>> -cliente
>> -caracteristica_1
>> -caracteristica_2
>> -caracteristica_3
>>
>> en las tres tablas el cliente (uso una doble key para identificarlo
>> unicamente) es unico, pero no tienen por que aparecer todos en las
>> tres
>> tablas
>>
>> mi pregunta es, me valdria con una simple union ??, como debo hacerlo


si
>> no
>> ??
>>
>>
>> como ejemplo
>>
>> tabla_1
>> clienteA casa
>> clienteB perro
>>
>> tabla_2
>> clienteA rojo
>> clienteC amarillo
>>
>> tabla_3
>> clienteB alto
>> clienteC bajo
>>
>> tabla_resultado
>> clienteA casa rojo
>> clienteB perro alto
>> clienteC amarillo bajo
>>
>>
>
>






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