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

problemas al relizar cruve de tablas en sql

Estas en el tema de problemas al relizar cruve de tablas en sql en el foro de Oracle en Foros del Web. Buenos dias amigos, Me pueden ayudar ya que intento realizar un cruce que a simple vista parece sencillo pero llevo dias pensando como hacerlo tengo ...
  #1 (permalink)  
Antiguo 25/03/2013, 08:58
 
Fecha de Ingreso: marzo-2013
Mensajes: 2
Antigüedad: 11 años, 8 meses
Puntos: 0
problemas al relizar cruve de tablas en sql

Buenos dias amigos,
Me pueden ayudar ya que intento realizar un cruce que a simple vista parece sencillo pero llevo dias pensando como hacerlo tengo dos tablas con registros llamense tabla a y tabla b. Ambas tablas tienen registros la tabla a tiene 800 y la tabla b tiene 600 registros de ambos tengo una cantidad de registros en comun imaginemos que son unos 400 registro en comun lo que yo quiero lograr es un cruce que me muestre la totalidad de de datos de la tabla a y la totalidad de la tabla b para crear un identificador que me muestre una vez hecho el cruce que datos son de la tabla a y que datos son de la tabla b.
Cabe mencionar que tienen datos en comun sin embargo las tablas no tienen los mismos campos y que el cruce es porque necesito los registros de ambas tablas ademas que agregare un campo de la tabla b a la tabla a para mostrar.
tambien ya intente con un full other join, union all, y otros metodos pero ninguno me muestra el resultado que deseo.

Espero darme a entender si no pueden preguntarme para explicarme mejor, ojala me puedan ayudar ya que me urge realizar esto.

PD: soy medio nuevo en esto.
  #2 (permalink)  
Antiguo 25/03/2013, 18:28
 
Fecha de Ingreso: enero-2009
Mensajes: 32
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: problemas al relizar cruve de tablas en sql

Sacar todos los registros de a y b pasa por UNION ALL. Pon el ejemplo concreto y podemos ayudarte mejor.

Un saludo
__________________
Anotaciones de un programador
  #3 (permalink)  
Antiguo 26/03/2013, 09:29
 
Fecha de Ingreso: marzo-2013
Mensajes: 2
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: problemas al relizar cruve de tablas en sql

ok es asi:
tengo un cubo (cruce de varias tablas bajo ciertos criterios) realizado que me muestra las cancelaciones de unos productos sin embargo ahora me indican que existe una nueva tabla que muestra cuales son las cancelaciones reales ya que el cubo no las muestra todas tengo que hacer el cruce porque los campos y la informacion del cubo no se puede tocar tiene que permanecer tal como esta y se le tiene que agregar un campo de la tabla "cancelaciones reales" (llamemosla asi), ahora bien digamos que para enero el cubo me brindo 2000 registros de cancelaciones y la tabla de cancelaciones reales me brinda 1500 entre los datos del cubo y la tabla hay 800 registros en comun, por lo que deja una diferencia en el caso de la tabla de cancelaciones reales de 700 registros que los tengo que identificar como cancelaciones verdaderas y a la diferencia dejarla con un no. en si lo que deseo es hacer el cruce donde pueda ver la totalidad de los registros tanto de el cubo inicial como de la tabla de cancelaciones reales para hacer la diferencia de cuales son las realaes y cuales no lo son.

Uno de los problemas es que cuando hago el cruce normal de los 1500 que son las reales solo me aparecen 900, hago que se respete la regla con un right other join y me de los 2000 registros del cubo inicial peor todavia no encuentro como hacer que me aparescan los demas datos de la tabla que me muestra las cancelaciones reales.
  #4 (permalink)  
Antiguo 26/03/2013, 16:48
 
Fecha de Ingreso: enero-2009
Mensajes: 32
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: problemas al relizar cruve de tablas en sql

Suponiendo que las estructuras contienen datos que se pueden comparar entre ellas podrías probar a hacer una union entre los registros del CUBO que no están en CANCELACIONES_REALES + CANCELACIONES_REALES.

Algo así:

Código SQL:
Ver original
  1. SELECT campo1, campo2, campo3, 'N' REAL
  2.    FROM CUBO A
  3.  WHERE ... NOT EXISTS ( SELECT 'X'
  4.                                           FROM CANCELACIONES_REALES B
  5.                                         WHERE B. ... = A. ... )
  6. UNION
  7. SELECT campo1, campo2, campo3, 'S' REAL
  8.    FROM CANCELACIONES_REALES

Espero que te sirva, pero lo cierto es que sin saber la información disponible en las tablas y la información resultante de la unición se hace dificil imaginar qué es realmente lo que necesitas.

Un saludo.
__________________
Anotaciones de un programador

Etiquetas: sql, 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 22:18.