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

SQL/ACCESS Sumar/Unir tablas

Estas en el tema de SQL/ACCESS Sumar/Unir tablas en el foro de Bases de Datos General en Foros del Web. Hola, ya busqué en google y no le atino a lo correcto :D Tengo 3 tablas con los siguientes campos: Proveedores ID_Prov Nombre_prov Clientes ID_cliente ...
  #1 (permalink)  
Antiguo 16/04/2011, 14:06
 
Fecha de Ingreso: enero-2001
Mensajes: 222
Antigüedad: 23 años, 10 meses
Puntos: 0
SQL/ACCESS Sumar/Unir tablas

Hola, ya busqué en google y no le atino a lo correcto :D

Tengo 3 tablas con los siguientes campos:

Proveedores
ID_Prov
Nombre_prov

Clientes
ID_cliente
Nombre_cliente

Empleados
ID_empleado
Nombre Empleado

Y para efectos de un reporte que requiere armar otra área de la empresa, necesito colocar los nombres de proveedores, clientes y empleados en una misma tabla para que se de la opción de elegir el nombre del involucrado (sin importar de que tipo sea), esa opción de elegir la voy a poner usando un cuadro combinado, por eso quiero crear una consulta con todas las opciones posibles.

He intentado así (con los nombres reales de mis tablas y campos):

Expr1: [T Clientes].Nombre+[T personal].[Nombre Persona]+[T Proveedores].Nombre

Pero no funciona, me genera miles de registros combinados, alguien sabe como debería ir la consulta??

Gracias!
  #2 (permalink)  
Antiguo 16/04/2011, 15: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: SQL/ACCESS Sumar/Unir tablas

Cita:
Y para efectos de un reporte que requiere armar otra área de la empresa, necesito colocar los nombres de proveedores, clientes y empleados en una misma tabla para que se de la opción de elegir el nombre del involucrado (sin importar de que tipo sea), esa opción de elegir la voy a poner usando un cuadro combinado, por eso quiero crear una consulta con todas las opciones posibles.

¡Noooo! Eso que estás haciendo se denomina "producto cartesiano", y es lo peor que se puede hacer en una consulta.
Te lo explico: Lo que haces es una JUNTA, que corresponde a la operación aritmética de multiplicación. ¿Entiendes?
Si el caso fuese que tuvieses 100 registros de una tabla, 200 de otra y 300 de otra, la cantidad de combinaciones sería de 6.000.000... Simplemente 100 x 200 x 300.
Eso no es un UNION. Un UNION es una suma
Código SQL:
Ver original
  1. SELECT * FROM proovedores
  2. UNION
  3. SELECT * FROM clientes
  4. UNION
  5. SELECT * FROM empleados,
El requisito básico de un UNION es que las consultas deben tener la misma cantidad de campos, del mismo tipo y en el mismo orden.
__________________
¿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 16/04/2011, 16:16
 
Fecha de Ingreso: enero-2001
Mensajes: 222
Antigüedad: 23 años, 10 meses
Puntos: 0
Respuesta: SQL/ACCESS Sumar/Unir tablas

Mmmm estonces no voy a poder hacer esto :/

La cuestión era que el área de calidad está haciendo un formato para reportes de no conformidad, y en ese mismo formato está involucrando no conformidades según el origen: de proveedor, cliente o procesos internos. Por esa razón quiero juntar en una columna todos los nombres y que ellos busquen el correcto, es lo mas práctico pa'mi jaja...........aunque lo correcto sería hacer 3 tipos de reportes para los 3 tipos de orígenes que tienen, pero quieren unificar todo en uno solo...........aunque lo correcto también sería hacer los campos dependientes y que me muestre solo los nombres según el origen seleccionado.

En fin, no sé si esto último se pueda hacer simple en access, voy a investigar, si alguien de antemano sabe le agradezco la ayuda.

Y anoté la explicación porqué ayuda a clarificar mi mente :D

Saludos y gracias
  #4 (permalink)  
Antiguo 16/04/2011, 16:23
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: SQL/ACCESS Sumar/Unir tablas

En realidad se trata de algo muy sencillo de implementar con un lenguaje de programación, pero no tanto con Access, porque en ese caso las tratas como tres lecturas a tres tablas diferentes, y las manejas por separado.
Tu problema básico es que no tienes un criterio definido que permita combinar en un JOIN los datos de las tres tablas. En lugar de eso tienes que considera todas las combinaciones. Eso no es bueno.
Sería mejor que hubiese una forma de hacer que la lectura de una tabla dependiese de la selección hecha sobre otra. De ese modo en realidad estás haciendo consultas en cascada, dependiendo de otro dato.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: tablas, bases-de-datos
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 14:23.