Consulta desde una tabla tipo Matriz

18/04/2008 - 18:09 por Penta | Informe spam
Estimados.
Utilizo SS2000 SP4
habia echo un post pero no se porque no salio :(

En tabla_a tengo:

codigo producto
1 1
1 2
2 1
2 2
3 1

En tabla_b tengo:
codigo producto estado
1 1 A
1 2 A
2 1 A


Quisera devolver:
codigo 1 producto 1
Ya que es el unico registro que esta en tabla B que cumple:
- todos los productos estan en tabla_A y se encuentran en estado A

- el codigo 2 NO ya que solo esta el producto 1 pero no esta el
producto 2

Atte.
Penta.

Preguntas similare

Leer las respuestas

#1 eMe
18/04/2008 - 18:52 | Informe spam
Penta, no basta con un JOIN

select * form tabla_a a join tabla_b b on a.codigo = b.codigo and a.producto
= b.producto

salu2



"Penta" escribió en el mensaje
news:
Estimados.
Utilizo SS2000 SP4
habia echo un post pero no se porque no salio :(

En tabla_a tengo:

codigo producto
1 1
1 2
2 1
2 2
3 1

En tabla_b tengo:
codigo producto estado
1 1 A
1 2 A
2 1 A


Quisera devolver:
codigo 1 producto 1
Ya que es el unico registro que esta en tabla B que cumple:
- todos los productos estan en tabla_A y se encuentran en estado A

- el codigo 2 NO ya que solo esta el producto 1 pero no esta el
producto 2

Atte.
Penta.




Respuesta Responder a este mensaje
#2 Luis Mata
18/04/2008 - 19:45 | Informe spam
- el codigo 2 NO ya que solo esta el producto 1 pero no esta el
producto 2

ó

- el codigo 2 NO ya que solo esta el item 1 pero no esta el
item 2?

?????


Att
Luis Mata Figueroa
Área Informática
Centro Cerámico Las Flores SAC
RPC: 993597297
TEL: 6174613


"Penta" escribió en el mensaje
news:
Estimados.
Utilizo SS2000 SP4
habia echo un post pero no se porque no salio :(

En tabla_a tengo:

codigo producto
1 1
1 2
2 1
2 2
3 1

En tabla_b tengo:
codigo producto estado
1 1 A
1 2 A
2 1 A


Quisera devolver:
codigo 1 producto 1
Ya que es el unico registro que esta en tabla B que cumple:
- todos los productos estan en tabla_A y se encuentran en estado A

- el codigo 2 NO ya que solo esta el producto 1 pero no esta el
producto 2

Atte.
Penta.




Respuesta Responder a este mensaje
#3 Carlos M. Calvelo
18/04/2008 - 20:09 | Informe spam
On 18 apr, 18:09, Penta wrote:
Estimados.
Utilizo SS2000 SP4
habia echo un post pero no se porque no salio :(




Si salió. Espero que ahora si lo veas porque
he puesto mi respuesta allí.

Saludos,
Carlos
Respuesta Responder a este mensaje
#4 Alejandro Mesa
20/04/2008 - 20:01 | Informe spam
Penta,

1 - Cuales son los codigos en tablaB que cumplen que todos los productos
asociados tienen estado ='A'?

Esta operacion se conoce como division relacional.

select x.codigo
from tablaB as x
where x.estado = 'A'
group by x.codigo
having count(distinct x.producto) = (select count(distinct y.product) from
tablaA as y where y.codigo = x.codigo)

2 - seleccionar todos los productos en tablaA donde el codigo esta en el
resultado del query anterior.

select a.*
from tablaA as a
inner join
(
select x.codigo
from tablaB as x
where x.estado = 'A'
group by x.codigo
having count(distinct x.producto) = (select count(distinct y.product) from
tablaA as y where y.codigo = x.codigo)
) as b
on a.codigo = b.codigo


AMB


"Penta" wrote:

Estimados.
Utilizo SS2000 SP4
habia echo un post pero no se porque no salio :(

En tabla_a tengo:

codigo producto
1 1
1 2
2 1
2 2
3 1

En tabla_b tengo:
codigo producto estado
1 1 A
1 2 A
2 1 A


Quisera devolver:
codigo 1 producto 1
Ya que es el unico registro que esta en tabla B que cumple:
- todos los productos estan en tabla_A y se encuentran en estado A

- el codigo 2 NO ya que solo esta el producto 1 pero no esta el
producto 2

Atte.
Penta.





Respuesta Responder a este mensaje
#5 Carlos M. Calvelo
20/04/2008 - 21:37 | Informe spam
Hola Alejandro,

On 20 apr, 20:01, Alejandro Mesa
wrote:
Penta,

1 - Cuales son los codigos en tablaB que cumplen que todos los productos
asociados tienen estado ='A'?

Esta operacion se conoce como division relacional.

select x.codigo
from tablaB as x
where x.estado = 'A'
group by x.codigo
having count(distinct x.producto) = (select count(distinct y.product) from
tablaA as y where y.codigo = x.codigo)



No solo tendrán que ser los dos count en el having iguales,
sino que los productos tendrán que ser tambien los mismos.

Añade este registro a la tabla_b
codigo producto estado
2 3 A

y verás lo que quiero decir.

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