Select (estoy medio complicado)

18/04/2008 - 17:40 por Penta | Informe spam
Estimados.
Utilizo SS2000 SP4.
Tengo 2 tablas.
La primera tiene TABLA_A: codigo_cliente, codigo_producto
La segunda tiene TABLA_B: codigo_cliente,codigo_producto y estado

Pues bien lo graficare con un ejemplo:

TABLA_A
codigo_cliente codigo_producto
1 1
1 2
2 1
2 2
2 3
3 1

TABLA_B
codigo_cliente codigo_producto estado
1 1 A
1 2 A
2 1 A
2 2 R
3 1 R

La idea es una qyery que me devuelva en este caso solo el codigo 1, ya
que cumple con:

- Todos los codigos de productos de la TABLA_B estan en TABLA_A y
ademas estan todos en estado A
- El codigo 2 No cumple por 2 razones:
- NO estan todos los codigo de producto de la TABLA_A en Tabla_B
- El codigo 3 NO cumple por:
- Estando todos los codigos el estado es R

La Tabla_A es la matriz en ella se especifica los codigos de productos
que deben existir en la TABLA_B
La Tabla_B contiene los estados de los codigo ahi creados y claro
pueden faltar codigos.

Atte.
Penta.
 

Leer las respuestas

#1 Carlos M. Calvelo
18/04/2008 - 20:05 | Informe spam
Hola Penta,

On 18 apr, 17:40, Penta wrote:
Estimados.
Utilizo SS2000 SP4.
Tengo 2 tablas.
La primera tiene TABLA_A: codigo_cliente, codigo_producto
La segunda tiene TABLA_B: codigo_cliente,codigo_producto y estado

Pues bien lo graficare con un ejemplo:

TABLA_A
codigo_cliente   codigo_producto
1                                 1
1                                 2
2                                 1
2                                 2
2                                 3
3                                 1

TABLA_B
codigo_cliente   codigo_producto  estado
1                                 1                A
1                                 2                A
2                                 1                A
2                                 2                R
3                                 1                R

La idea es una qyery que me devuelva en este caso solo el codigo 1, ya
que cumple con:

- Todos los codigos de productos de la TABLA_B estan en TABLA_A y
ademas estan todos en estado A
- El codigo 2 No cumple por 2 razones:
    - NO estan todos los codigo de producto de la TABLA_A en Tabla_B
- El codigo 3 NO cumple por:
        - Estando todos los codigos el estado es R

La Tabla_A es la matriz en ella se especifica los codigos de productos
que deben existir en la TABLA_B
La Tabla_B contiene los estados de los codigo ahi creados y claro
pueden faltar codigos.




select codigo_cliente
from (select distinct codigo_cliente from TABLA_A) CLIENTES
where not exists
(select *
from TABLA_A A
where A.codigo_cliente=CLIENTES.codigo_cliente
and not exists
(select *
from TABLA_B B
where B.codigo_cliente=CLIENTES.codigo_cliente
and A.codigo_producto=B.codigo_producto
and B.estado = 'A'))

Suerte con el rompecabezas :)

Saludos,
Carlos

Preguntas similares