Relacionar campos de dos tablas con nulos

28/12/2004 - 18:15 por Jose | Informe spam
Hola a todos:
Tengo que obtener unos informes de una bd de un cliente, para lo cual he
generado una consulta que me relaciona campos de dos tablas, pero resulta
que uno de los campos tiene valores nulos en ambas tablas. El resultado
obtenido excluye los registros con nulos en los campos relacionados. Por
ejemplo:

Tabla1
ID1 ID2 Dato1
aa aaa 1
bb <NULL> 2

Tabla2
ID1 ID2 Dato2
aa aaa 11
bb <NULL> 22

El resultado de la consulta
SELECT dbo.Tabla1.ID1, dbo.Tabla1.ID2, dbo.Tabla1.Dato1,
dbo.Tabla2.Dato2
FROM dbo.Tabla1 INNER JOIN dbo.Tabla2 ON dbo.Tabla1.ID1 =
dbo.Tabla2.ID1 AND dbo.Tabla1.ID2 = dbo.Tabla2.ID2

sería

ID1 ID2 Dato1 Dato2
aa aaa 1 11

Habría alguna manera de que me saliese también?
bb <NULL> 2 22

Podría actualizar los datos NULL a vacío, pero habría que hacerlo cada vez
que se obtenga el informe. Es posible hacer la relación de manera que si el
campo es nulo en ambos registros los relacione también?

Gracias a todos por anticipado

Preguntas similare

Leer las respuestas

#1 Maxi
28/12/2004 - 18:30 | Informe spam
Hola Jose, y porque no relacionar por un solo campo?


Salu2
Maxi


"Jose" escribió en el mensaje
news:
Hola a todos:
Tengo que obtener unos informes de una bd de un cliente, para lo cual he
generado una consulta que me relaciona campos de dos tablas, pero resulta
que uno de los campos tiene valores nulos en ambas tablas. El resultado
obtenido excluye los registros con nulos en los campos relacionados. Por
ejemplo:

Tabla1
ID1 ID2 Dato1
aa aaa 1
bb <NULL> 2

Tabla2
ID1 ID2 Dato2
aa aaa 11
bb <NULL> 22

El resultado de la consulta
SELECT dbo.Tabla1.ID1, dbo.Tabla1.ID2, dbo.Tabla1.Dato1,
dbo.Tabla2.Dato2
FROM dbo.Tabla1 INNER JOIN dbo.Tabla2 ON dbo.Tabla1.ID1 =
dbo.Tabla2.ID1 AND dbo.Tabla1.ID2 = dbo.Tabla2.ID2

sería

ID1 ID2 Dato1 Dato2
aa aaa 1 11

Habría alguna manera de que me saliese también?
bb <NULL> 2 22

Podría actualizar los datos NULL a vacío, pero habría que hacerlo cada vez
que se obtenga el informe. Es posible hacer la relación de manera que si
el campo es nulo en ambos registros los relacione también?

Gracias a todos por anticipado

Respuesta Responder a este mensaje
#2 Maxi
28/12/2004 - 18:46 | Informe spam
Entiendo, pero si son nulos de ambos lados no le veo el sentido vincularlo a
menos que por id1 tengas mas de un valor, eso es asi?

podrias tambien usar isnull() para convertir el nulo en algo, por ejemplo 0


Salu2
Maxi


"Jose" escribió en el mensaje
news:
Porque con la consulta lo que hago es agrupar usando los dos campos
coincidentes y sumar los datos

Gracias por tu interés.


"Maxi" escribió en el mensaje
news:%
Hola Jose, y porque no relacionar por un solo campo?


Salu2
Maxi


"Jose" escribió en el mensaje
news:
Hola a todos:
Tengo que obtener unos informes de una bd de un cliente, para lo cual he
generado una consulta que me relaciona campos de dos tablas, pero
resulta que uno de los campos tiene valores nulos en ambas tablas. El
resultado obtenido excluye los registros con nulos en los campos
relacionados. Por ejemplo:

Tabla1
ID1 ID2 Dato1
aa aaa 1
bb <NULL> 2

Tabla2
ID1 ID2 Dato2
aa aaa 11
bb <NULL> 22

El resultado de la consulta
SELECT dbo.Tabla1.ID1, dbo.Tabla1.ID2, dbo.Tabla1.Dato1,
dbo.Tabla2.Dato2
FROM dbo.Tabla1 INNER JOIN dbo.Tabla2 ON dbo.Tabla1.ID1 =
dbo.Tabla2.ID1 AND dbo.Tabla1.ID2 = dbo.Tabla2.ID2

sería

ID1 ID2 Dato1 Dato2
aa aaa 1 11

Habría alguna manera de que me saliese también?
bb <NULL> 2 22

Podría actualizar los datos NULL a vacío, pero habría que hacerlo cada
vez que se obtenga el informe. Es posible hacer la relación de manera
que si el campo es nulo en ambos registros los relacione también?

Gracias a todos por anticipado









Respuesta Responder a este mensaje
#3 Jose
28/12/2004 - 18:51 | Informe spam
Porque con la consulta lo que hago es agrupar usando los dos campos
coincidentes y sumar los datos

Gracias por tu interés.


"Maxi" escribió en el mensaje
news:%
Hola Jose, y porque no relacionar por un solo campo?


Salu2
Maxi


"Jose" escribió en el mensaje
news:
Hola a todos:
Tengo que obtener unos informes de una bd de un cliente, para lo cual he
generado una consulta que me relaciona campos de dos tablas, pero resulta
que uno de los campos tiene valores nulos en ambas tablas. El resultado
obtenido excluye los registros con nulos en los campos relacionados. Por
ejemplo:

Tabla1
ID1 ID2 Dato1
aa aaa 1
bb <NULL> 2

Tabla2
ID1 ID2 Dato2
aa aaa 11
bb <NULL> 22

El resultado de la consulta
SELECT dbo.Tabla1.ID1, dbo.Tabla1.ID2, dbo.Tabla1.Dato1,
dbo.Tabla2.Dato2
FROM dbo.Tabla1 INNER JOIN dbo.Tabla2 ON dbo.Tabla1.ID1 =
dbo.Tabla2.ID1 AND dbo.Tabla1.ID2 = dbo.Tabla2.ID2

sería

ID1 ID2 Dato1 Dato2
aa aaa 1 11

Habría alguna manera de que me saliese también?
bb <NULL> 2 22

Podría actualizar los datos NULL a vacío, pero habría que hacerlo cada
vez que se obtenga el informe. Es posible hacer la relación de manera que
si el campo es nulo en ambos registros los relacione también?

Gracias a todos por anticipado





Respuesta Responder a este mensaje
#4 Asterion
28/12/2004 - 18:55 | Informe spam
Podés hacerlo con una unión.

La consulta que pusiste está bien. Esta sería la primera parte de la unión.
Si la segundas llaves de la tablas pueden ser nulas, entonces tendrías que
hacer una consulta que haga el join por el ID1 y se asegure que el ID2 sea
vacío en ambas tablas a la vez.

De todas maneras podrías reconsiderar la conveniencia de tener una tabla que
permita una clave nula. Por ahí te conviene más agregar algún campo
autoincremental.
Respuesta Responder a este mensaje
#5 Jose
28/12/2004 - 19:03 | Informe spam
Si. Lo que he mostrado es un ejemplo y de id1 hay varios valores, al igual
que de id2.
¿Podrías especificar un poco más cómo convertir ese nulo en algo cuando
ejecuto la consulta, por favor?

Gracias


"Maxi" escribió en el mensaje
news:
Entiendo, pero si son nulos de ambos lados no le veo el sentido vincularlo
a menos que por id1 tengas mas de un valor, eso es asi?

podrias tambien usar isnull() para convertir el nulo en algo, por ejemplo
0


Salu2
Maxi


"Jose" escribió en el mensaje
news:
Porque con la consulta lo que hago es agrupar usando los dos campos
coincidentes y sumar los datos

Gracias por tu interés.


"Maxi" escribió en el mensaje
news:%
Hola Jose, y porque no relacionar por un solo campo?


Salu2
Maxi


"Jose" escribió en el mensaje
news:
Hola a todos:
Tengo que obtener unos informes de una bd de un cliente, para lo cual
he generado una consulta que me relaciona campos de dos tablas, pero
resulta que uno de los campos tiene valores nulos en ambas tablas. El
resultado obtenido excluye los registros con nulos en los campos
relacionados. Por ejemplo:

Tabla1
ID1 ID2 Dato1
aa aaa 1
bb <NULL> 2

Tabla2
ID1 ID2 Dato2
aa aaa 11
bb <NULL> 22

El resultado de la consulta
SELECT dbo.Tabla1.ID1, dbo.Tabla1.ID2, dbo.Tabla1.Dato1,
dbo.Tabla2.Dato2
FROM dbo.Tabla1 INNER JOIN dbo.Tabla2 ON dbo.Tabla1.ID1 =
dbo.Tabla2.ID1 AND dbo.Tabla1.ID2 = dbo.Tabla2.ID2

sería

ID1 ID2 Dato1 Dato2
aa aaa 1 11

Habría alguna manera de que me saliese también?
bb <NULL> 2 22

Podría actualizar los datos NULL a vacío, pero habría que hacerlo cada
vez que se obtenga el informe. Es posible hacer la relación de manera
que si el campo es nulo en ambos registros los relacione también?

Gracias a todos por anticipado













Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida