Consulta SQL

Iniciado por Algotrix, 15 Marzo 2011, 00:27 AM

0 Miembros y 1 Visitante están viendo este tema.

Algotrix

Buenas Noches,

Quisiera ver si me aclaran este error que tengo, estoy haciendo una consulta de SQL contra unas tablas de una base de datos todo va bien hasta la hora de dicha consulta. El problemas es que me genera la consulta pero me sigue llamando mas y mas datos.

Sentencia

select c.NombreCompañía, e.Nombre +'  '+ e.Apellidos as Empleado, pe.FechaPedido, pr.PrecioUnidad
From Clientes as c
join Empleados as e on Nombre = e.Nombre
join Pedidos as pe on fechaPedido = pe.fechaPedido
join Productos as pr on PrecioUnidad = pr.PrecioUnidad

Si alguien ve un error o porque la razon de esa seleccion tan larga.  :huh:
"El software libre es como el sexo, es mejor cuando es gratis"

Linus Torvalds

Shell Root

Emmm quizás te falte el WHERE. Sólo quieres 1 dato, verdad?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Algotrix

Cita de: Shell Root en 15 Marzo 2011, 00:29 AM
Emmm quizás te falte el WHERE. Sólo quieres 1 dato, verdad?

Tienes razon, ahora mismo lo agrege... pero no encuentro la forma de filtrar con exito... quiero todos los campos disponibles de clientes sin que se repitan.
"El software libre es como el sexo, es mejor cuando es gratis"

Linus Torvalds

Shell Root

No entiendo tú consulta. :/
Porque mejor no unes las tablas con el ID RELACIONADO
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

oxem.es

#4
Lo primero es relacionar las tablas entre sí, sino te mostrará todos los datos mezclados con todos. Viendo tus tablas lo lógico es que hayas creado una id única en la tabla pedidos, y hayas creado campos con la id de cada empleado y cliente.

¿Cuál/es campo/s las ralaciona entre sí?

PD: Estaría bien que pusieses un ejemplo de la tabla que tienes y el resultado que quisieses que te mostrase la consulta.

Algotrix

Disculpen si me mal entiendo, lo que pasa es que esas seleccion me atre mas de 500mil resultados y no puede ser asi porque solo son 91 clientes... :S por eso digo a ver donde esta mi error
"El software libre es como el sexo, es mejor cuando es gratis"

Linus Torvalds

Shell Root

Pero quizás se repitan, consulta sobre GROUP BY -creo que es así-
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

oxem.es

Citarme atre mas de 500mil resultados y no puede ser asi porque solo son 91 clientes...

A ver, si no relacionas las tablas, por cada fila de cliente hace una subconsulta de las demas tablas (consultando las demas tablas ENTERAS con cada cliente)

es decir, los resultados serán:

91 filas X nº de filas de los empleados X el numero de filas de pedidos X ... = 500mil resultados

Busca campos comunes y relaciona las tablas.

Algotrix

Cita de: oxem.es en 15 Marzo 2011, 01:45 AM
A ver, si no relacionas las tablas, por cada fila de cliente hace una subconsulta de las demas tablas (consultando las demas tablas ENTERAS con cada cliente)

es decir, los resultados serán:

91 filas X nº de filas de los empleados X el numero de filas de pedidos X ... = 500mil resultados

Busca campos comunes y relaciona las tablas.

Tenias razon, me costo algo de tiempo entenderlo pero tu forma de clararme las cosas funciono muchas gracias y tambien gracias a ti shell root  :D
"El software libre es como el sexo, es mejor cuando es gratis"

Linus Torvalds