Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Consulta para lograr división entre tablas

Estas en el tema de Consulta para lograr división entre tablas en el foro de SQL Server en Foros del Web. Hola, tengo el problema de no poder crear una consulta que logre la división entre 2 tablas. Lo voy a tratar de explicar... Teniendo las ...
  #1 (permalink)  
Antiguo 09/05/2014, 15:28
 
Fecha de Ingreso: mayo-2014
Mensajes: 2
Antigüedad: 9 años, 11 meses
Puntos: 0
Pregunta Consulta para lograr división entre tablas

Hola, tengo el problema de no poder crear una consulta que logre la división entre 2 tablas.

Lo voy a tratar de explicar...

Teniendo las tablas A y B:
Código PHP:
Tabla A
-----------------
|
Código Producto|
-----------------
|
1035           |
|
2241           |
|
2249           |
|
2518           |
-----------------


Tabla B
----------------------------------
|
Código Comercial|Código Producto|
----------------------------------
10             2241          |
23             2518          |
23             1035          |
39             2518          |
37             2518          |
10             2249          |
23             2249          |
23             2241          |
---------------------------------- 
Si divido la tabla B por la tabla A tendría que obtener como resultado:
Código PHP:
Tabla resultado
------------------
|
Código Comercial|
------------------
|
23              |
------------------ 
Ya que un registro se encuentra en la tabla resultado si y sólo si está asociado en la tabla B con cada fila de la tabla A.



Desconozco si es un problema sencillo o no, pero estoy trabado con esto y no le puedo encontrar solución.

Gracias de antemano a quien me pueda ayudar.
  #2 (permalink)  
Antiguo 09/05/2014, 15:34
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta para lograr división entre tablas

Código SQL:
Ver original
  1. SELECT * FROM tablaA AS t1
  2. INNER JOIN tablaB AS t2 ON (t1.codigo_producto=t2.codigo_producto)

saludos!

P.D: division???? que no es interseccion???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 09/05/2014, 16:51
 
Fecha de Ingreso: mayo-2014
Mensajes: 2
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Consulta para lograr división entre tablas

Gracias por responder Libras.

Finalmente logré hacer la consulta. La dejo a continuación por si alguien tiene la misma duda:
Código SQL:
Ver original
  1. SELECT codigoComercial
  2. FROM tablab
  3. WHERE codigoProducto IN (SELECT codigoProducto
  4.                          FROM tablab
  5.                          INTERSECT
  6.                          SELECT codigoProducto
  7.                          FROM tablaa)
  8. GROUP BY codigoComercial
  9. HAVING COUNT(codigoComercial)=4
  #4 (permalink)  
Antiguo 12/05/2014, 11:55
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta para lograr división entre tablas

¿Y es EFICIENTE tu código?, creo que con el INNER JOIN que te propuso Libras trabajaría de mejor forma
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 12/05/2014, 13:32
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta para lograr división entre tablas

Cita:
Iniciado por iislas Ver Mensaje
¿Y es EFICIENTE tu código?, creo que con el INNER JOIN que te propuso Libras trabajaría de mejor forma
yo tambien lo creo, pero el dice que asi esta bien, asi que al cliente lo que pida :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: lograr, registro, tabla, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:21.