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

Crear una 3° tabla, partiendo de algunas columnas desde 2 tablas distintas

Estas en el tema de Crear una 3° tabla, partiendo de algunas columnas desde 2 tablas distintas en el foro de Oracle en Foros del Web. Hola gente, podran ayudarme con esto por favor: Necesito crear una 3° tabla, partiendo de algunas columnas desde 2 tablas distintas. desde la primera debo ...
  #1 (permalink)  
Antiguo 19/04/2013, 07:34
 
Fecha de Ingreso: octubre-2011
Ubicación: Merlo
Mensajes: 18
Antigüedad: 13 años, 1 mes
Puntos: 1
Crear una 3° tabla, partiendo de algunas columnas desde 2 tablas distintas

Hola gente, podran ayudarme con esto por favor:

Necesito crear una 3° tabla, partiendo de algunas columnas desde 2 tablas distintas.

desde la primera debo obtener:
POINT, TAG, TYPE

desde la segunda debo obtener:
POINTNUMBER, POINTNAME

la 3° tabla debe contener los valores que cumplan:

substr(TAG,1,3) = substr(POINTNAME,1,3)

lo estoy haciendo y me trae cualquier numero de rows. En algo no estoy agrupando bien.

Este es el query:
Código SQL:
Ver original
  1. SELECT
  2. DISTINCT a.point,
  3. a.tag,
  4. b.pointname,
  5. a.TYPE,
  6. b.pointnumber
  7. FROM desde_collect a, desde_ap b
  8. WHERE substr(a.tag, 1,3) = substr(b.pointname,1,3)
  9. GROUP BY a.point, a.tag, b.pointname, a.TYPE, b.pointnumber
  10. ORDER BY a.tag, b.pointname;
me devuelve registros repetidos.
POINT Y TAG SE REPITEN

Podran ayudarme a encontrar el error?

Última edición por gnzsoloyo; 19/04/2013 a las 11:52
  #2 (permalink)  
Antiguo 19/04/2013, 08:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Crear una 3° tabla, partiendo de algunas columnas desde 2 tablas distintas

No cuelges un problema de otro thread, aunque sea propio.
Si son problemas diferentes. abre temas diferentes. Ayudará a que no se produzcan confusiones a los que quieren ayudarte
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 19/04/2013, 11:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Crear una 3° tabla, partiendo de algunas columnas desde 2 tablas distintas

Cita:
me devuelve registros repetidos.
POINT Y TAG SE REPITEN
Por cierto, eso no es una repetición, estrictamente hablando, porque el DISTINCT toma en consideración todos los campos de cada registro, así que mientras los dos últimos valores varien, no se considera una repetición, sino el resultado natural de la consulta en una relación 1:N.
En ese tipo de relaciones, el primer registro aparecerá tantas veces como relaciones tenga con la segunda tabla.
Por otro lado, es evidente para mi que existe una muy mala definición de la relación, desde el momento en que estás vinculando una parte de un campo de una tabla con una parte de otro en otra tabla.
En otras palabras, no existe una relación A = b, y eso implica un mal diseño de datos.
No puedo hacer un análisis más profundo porque no has aportado información suficiente respecto a qué es cada tabla y que datos representan cada uno de los campos entre ellas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 22/04/2013, 06:13
 
Fecha de Ingreso: octubre-2011
Ubicación: Merlo
Mensajes: 18
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Crear una 3° tabla, partiendo de algunas columnas desde 2 tablas distintas

Hola gnzsoloyo, gracias por tu respuesta.

Trataré de explicar mejor el pedido. Es verdad que no hay una relación apropiada entre esas tablas, ya que no pertenecen al mismo esquema/base, porque tablaA.tag es un conjunto de datos obtenidos desde un archivo plano, extraidos desde una base Sybase.

La necesidad de crear una 3° tabla surge porque es necesario ubicar aquellos registros en los que solo una parte de su contenido coinciden.

Por ej el contenido de uno de los registos tablaB.pointnumber es:

SUR_3AT1_2____I Cte. Acoplam.Transv.de Barras 132kV-

Mientras que en la tablaA.tag, el contenido es:

SUR_3AT1_2____I

Necesito obtener solo una parte del registro tablaB.pointnumber, que coincida con el contenido total de tablaA.tag

Es el unico campo por el que puedo igualar.

Gracias nuevamente.

Última edición por carlino70; 22/04/2013 a las 06:16 Razón: error semantico
  #5 (permalink)  
Antiguo 22/04/2013, 06:17
 
Fecha de Ingreso: octubre-2011
Ubicación: Merlo
Mensajes: 18
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Crear una 3° tabla, partiendo de algunas columnas desde 2 tablas distintas

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No cuelges un problema de otro thread, aunque sea propio.
Si son problemas diferentes. abre temas diferentes. Ayudará a que no se produzcan confusiones a los que quieren ayudarte
Tenes razón disculpas por el error.
Gracias
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 06:52.