Problemas con Consulta

14/06/2006 - 13:48 por swricardo | Informe spam
Hola tengo una duda con una consulta.

tengo 3 tablas, del primera necesito 2 condiciones, la segunda la uso para
unir las dos, y de la tercera necesito los registos con un campo que puede
estar en null, la clave primaria es compuesta por 3 campos, el unico que
no se repite es un campo descripcion.

Necesito los valores que cuando el campo este en nulo, pero solo si no
encuentra la misma descripcion con ese campo no nulo., solo puedo fijarme
sin igual por el campo descripcion

Yo hice esta consulta pero no me funciona.


Select distinct A.campo1
from tabla1 as A
inner join tabla 2 as B
on B.canpoid =A.campoid AND B.campoid2=A.campoid2
inner Join tabla3 as C
on B.campoid=C.campoid
and B.campoid2= C.campoid2
where (a.campo <> 4)AND C.camponulo is null
and descripcion in ( select descripcion
from tabla3 D
where D.camponulo is not null)

Alquien sabe que puede estar mal o como puedo reformular la consulta?

Gracias

Ricardo

Preguntas similare

Leer las respuestas

#1 Maxi
14/06/2006 - 15:47 | Informe spam
Hola, si nos pasas un ejemplo de algunos registros de estas tablas con sus
campos y el resultado esperado va a ser mas facil poderte ayudar.


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Ricardo" escribió en el mensaje
news:%
Hola tengo una duda con una consulta.

tengo 3 tablas, del primera necesito 2 condiciones, la segunda la uso para
unir las dos, y de la tercera necesito los registos con un campo que puede
estar en null, la clave primaria es compuesta por 3 campos, el unico que
no se repite es un campo descripcion.

Necesito los valores que cuando el campo este en nulo, pero solo si no
encuentra la misma descripcion con ese campo no nulo., solo puedo fijarme
sin igual por el campo descripcion

Yo hice esta consulta pero no me funciona.


Select distinct A.campo1
from tabla1 as A
inner join tabla 2 as B
on B.canpoid =A.campoid AND B.campoid2=A.campoid2
inner Join tabla3 as C
on B.campoid=C.campoid
and B.campoid2= C.campoid2
where (a.campo <> 4)AND C.camponulo is null
and descripcion in ( select descripcion
from tabla3 D
where D.camponulo is not null)

Alquien sabe que puede estar mal o como puedo reformular la consulta?

Gracias

Ricardo


Respuesta Responder a este mensaje
#2 swricardo
14/06/2006 - 19:31 | Informe spam
El tema seria que necesito los registros de la primera fila, el que tenga
el valor nulo, el segundo si bien tiene un valor nulo, tiene la misma
descripcion que el 3 registro que no es nulo. la descripcion es el unico
valor que no cambia, porq los otros dos son clave primaria.


NroEmp Operación Descripcion Agente
1 1 XXX null
1 2 YYY null
1 3 YYY AAA

espero haber sido mas claro, porque esta esta consulta no se como sacarla.

Gracias, Ricardo


Maxi wrote:

Hola, si nos pasas un ejemplo de algunos registros de estas tablas con sus
campos y el resultado esperado va a ser mas facil poderte ayudar.
Respuesta Responder a este mensaje
#3 Maxi
14/06/2006 - 20:08 | Informe spam
ok, entonce si te entendi bien vos estas necesitando solo aquellos registros
q tienen null pero q no pueden estar con la misma descripcion sin null, por
eso no aparece el registro 3 ni 2

Select tabla1.* from (select * from tabla where agente is null) tabla1
where description not in (select descripcion where agente is not null)



Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Ricardo" escribió en el mensaje
news:

El tema seria que necesito los registros de la primera fila, el que tenga
el valor nulo, el segundo si bien tiene un valor nulo, tiene la misma
descripcion que el 3 registro que no es nulo. la descripcion es el unico
valor que no cambia, porq los otros dos son clave primaria.


NroEmp Operación Descripcion Agente
1 1 XXX null
1 2 YYY null
1 3 YYY AAA

espero haber sido mas claro, porque esta esta consulta no se como sacarla.

Gracias, Ricardo


Maxi wrote:

Hola, si nos pasas un ejemplo de algunos registros de estas tablas con
sus
campos y el resultado esperado va a ser mas facil poderte ayudar.





Respuesta Responder a este mensaje
#4 swricardo
14/06/2006 - 21:14 | Informe spam
Maxi, gracias por tu respuesta, tengo que agregarle otra tabla, para
agregar una condicion mas y cuando hago el inner join me da un error,

en que parte del from deberia hacerlo?

Gracias de nuevo, Ricardo
Maxi wrote:

ok, entonce si te entendi bien vos estas necesitando solo aquellos registros
q tienen null pero q no pueden estar con la misma descripcion sin null, por
eso no aparece el registro 3 ni 2

Select tabla1.* from (select * from tabla where agente is null) tabla1
where description not in (select descripcion where agente is not null)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida