Pregunta para sacar registros unicos

13/06/2005 - 05:54 por LUCHO | Informe spam
Hola muchachos:


Tengo dos tablas, Clientes y ProductosClientes

La estructura de Clientes es:


CLIENTES
=
NIT NOMBRECLIENTE

La estructura de ProductosClientes es:


PRODUCTOSCLIENTES
=
NIT TIPOVINCULO



En la tabla de Productosclientes, el cliente puede tener uno, dos o los tres
indicadores que
se colocan a continuacion en la columna TIPOVINCULO:


-Contrato
-Cobro
-Garantia


EJEMPLO:

CLIENTES
==
NIT NOMBRECLIENTE
899999999 CLIENTE1
123456 CLIENTE2
123 CLIENTE3
456 CLIENTE4

PRODUCTOSCLIENTE

NIT TIPOVINCULO

899999999 CONTRATO
899999999 GARANTIA
123456 COBRO
123456 GARANTIA
123456 CONTRATO
123 COBRO
456 COBRO

La idea es hacer una consulta en la cual se saque el NIT y el Nombre del
Cliente que solo tiene en la tabla PRODUCTOSCLIENTES
productos en COBRO y nada mas, es decir, si tienen vinculo en Garantio o
Contrato no debe salir.
si la consulta se hiciera sobre las tablas anteriormente descritas en el
ejemplo solo deberian salir
los clientes 123 (Cliente3) y 456 (Cliente4).


Si alguien me puede hechar una mano con esto se los agradeceria mucho.


ATTT


LUCHO

Preguntas similare

Leer las respuestas

#1 Daniel R. Rossnagel
13/06/2005 - 07:10 | Informe spam
select CLIENTES.NIT,CLIENTES.NOMBRECLIENTE from CLIENTES iner join
PRODUCTOSCLIENTES on (CLIENTES.NIT=PRODUCTOSCLIENTES.NIT)
where PRODUCTOSCLIENTES.TIPOVINCULO='Cobro' AND CLIENTES.NIT not in (
select CLIENTES.NIT from CLIENTES iner join PRODUCTOSCLIENTES on
(CLIENTES.NIT=PRODUCTOSCLIENTES.NIT)
where not PRODUCTOSCLIENTES.TIPOVINCULO='Cobro')



"LUCHO" escribió en el mensaje
news:u1Eg%
Hola muchachos:


Tengo dos tablas, Clientes y ProductosClientes

La estructura de Clientes es:


CLIENTES
=>
NIT NOMBRECLIENTE

La estructura de ProductosClientes es:


PRODUCTOSCLIENTES
=>
NIT TIPOVINCULO



En la tabla de Productosclientes, el cliente puede tener uno, dos o los
tres
indicadores que
se colocan a continuacion en la columna TIPOVINCULO:


-Contrato
-Cobro
-Garantia


EJEMPLO:

CLIENTES
==>
NIT NOMBRECLIENTE
899999999 CLIENTE1
123456 CLIENTE2
123 CLIENTE3
456 CLIENTE4

PRODUCTOSCLIENTE
>
NIT TIPOVINCULO

899999999 CONTRATO
899999999 GARANTIA
123456 COBRO
123456 GARANTIA
123456 CONTRATO
123 COBRO
456 COBRO

La idea es hacer una consulta en la cual se saque el NIT y el Nombre del
Cliente que solo tiene en la tabla PRODUCTOSCLIENTES
productos en COBRO y nada mas, es decir, si tienen vinculo en Garantio o
Contrato no debe salir.
si la consulta se hiciera sobre las tablas anteriormente descritas en el
ejemplo solo deberian salir
los clientes 123 (Cliente3) y 456 (Cliente4).


Si alguien me puede hechar una mano con esto se los agradeceria mucho.


ATTT


LUCHO


Respuesta Responder a este mensaje
#2 Alejandro Mesa
13/06/2005 - 15:18 | Informe spam
Trata,

select a.nit, a.nombrecliente
from clientes as a
inner join
(
select nit
from productosclientes
group by nit
having min(tipovinculo) = 'cobro' and count(distinct tipovinculo) = 1
) as b
on a.nit = b.nit


AMB

"LUCHO" wrote:

Hola muchachos:


Tengo dos tablas, Clientes y ProductosClientes

La estructura de Clientes es:


CLIENTES
=>
NIT NOMBRECLIENTE

La estructura de ProductosClientes es:


PRODUCTOSCLIENTES
=>
NIT TIPOVINCULO



En la tabla de Productosclientes, el cliente puede tener uno, dos o los tres
indicadores que
se colocan a continuacion en la columna TIPOVINCULO:


-Contrato
-Cobro
-Garantia


EJEMPLO:

CLIENTES
==>
NIT NOMBRECLIENTE
899999999 CLIENTE1
123456 CLIENTE2
123 CLIENTE3
456 CLIENTE4

PRODUCTOSCLIENTE
>
NIT TIPOVINCULO

899999999 CONTRATO
899999999 GARANTIA
123456 COBRO
123456 GARANTIA
123456 CONTRATO
123 COBRO
456 COBRO

La idea es hacer una consulta en la cual se saque el NIT y el Nombre del
Cliente que solo tiene en la tabla PRODUCTOSCLIENTES
productos en COBRO y nada mas, es decir, si tienen vinculo en Garantio o
Contrato no debe salir.
si la consulta se hiciera sobre las tablas anteriormente descritas en el
ejemplo solo deberian salir
los clientes 123 (Cliente3) y 456 (Cliente4).


Si alguien me puede hechar una mano con esto se los agradeceria mucho.


ATTT


LUCHO



Respuesta Responder a este mensaje
#3 Don Roque
13/06/2005 - 19:02 | Informe spam
Fijate con

select nombrecliente
from clientes c
where ( select count(*) from PRODUCTOSCLIENTE p where p.nit = c.nit and
tipovinculo='Cobro') > 0 and
( select count(*) from PRODUCTOSCLIENTE p where p.nit = c.nit
and tipovinculo<>'Cobro') = 0
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida