sql con varios inner join
    
		    Estoy implementando un programa que gestiona stocks, lo hago en Visual Basic 6 y ataco a una BD Access 2000.
Mi problema es sacar una select que muestra datos de distintas tablas y no consigo anidar correctamente los distintos INNER JOIN. Mi idea es la siguiente:
TABLAS
ALBARAN_ENTRADA
Id
Numero
Fecha
Descripcion
Proveedor_id
Cliente_id
Seccion_id
DETALLE_ENTRADA
Id
Albaran_entrada_id
Producto_id
Cantidad
Descripcion
PRODUCTO
Id
Codigo
Nombre
Descripcion
CLIENTE
Id
Codigo
Nombre
PROVEEDOR
Id
Codigo
Nombre
SECCION
Id
Codigo
Nombre
Por un lado tengo una select de detalle_entrada:
Select producto.codigo, producto.nombre, detalle_entrada.cantidad, detalle_entrada.descripcion from detalle_entrada inner join producto on producto.id = detalle_entrada.producto_id
Y por otro la select del albaran_entrada:
Select albaran_entrada.numero, albaran_entrada.fecha, albaran_entrada.descripcion, cliente.codigo, cliente.nombre, proveedor.codigo, proveedor.nombre, seccion.codigo, seccion.nombre from albara_entrada inner join cliente on cliente.id = albaran_entrada.cliente_id inner join proveedor on proveedor.id = albaran_entrada.proveedor_id inner join seccion on seccion.id = albaran_entrada.seccion_id
Lo que quiero es:
Primero aclarar como anidar correctamente estos inner join de la segunda select ya que no lo he conseguido.
Luego la primera select por separado no tiene porque dar muchos problemas, pero lo ideal seria hacer una sola sentencia de las 2.
Si alguien sabe como hacer esto o incluso me puede recomendar un manual o un libro de SQL le estarÃa muy agradecido.
Marc.
	    
    Mi problema es sacar una select que muestra datos de distintas tablas y no consigo anidar correctamente los distintos INNER JOIN. Mi idea es la siguiente:
TABLAS
ALBARAN_ENTRADA
Id
Numero
Fecha
Descripcion
Proveedor_id
Cliente_id
Seccion_id
DETALLE_ENTRADA
Id
Albaran_entrada_id
Producto_id
Cantidad
Descripcion
PRODUCTO
Id
Codigo
Nombre
Descripcion
CLIENTE
Id
Codigo
Nombre
PROVEEDOR
Id
Codigo
Nombre
SECCION
Id
Codigo
Nombre
Por un lado tengo una select de detalle_entrada:
Select producto.codigo, producto.nombre, detalle_entrada.cantidad, detalle_entrada.descripcion from detalle_entrada inner join producto on producto.id = detalle_entrada.producto_id
Y por otro la select del albaran_entrada:
Select albaran_entrada.numero, albaran_entrada.fecha, albaran_entrada.descripcion, cliente.codigo, cliente.nombre, proveedor.codigo, proveedor.nombre, seccion.codigo, seccion.nombre from albara_entrada inner join cliente on cliente.id = albaran_entrada.cliente_id inner join proveedor on proveedor.id = albaran_entrada.proveedor_id inner join seccion on seccion.id = albaran_entrada.seccion_id
Lo que quiero es:
Primero aclarar como anidar correctamente estos inner join de la segunda select ya que no lo he conseguido.
Luego la primera select por separado no tiene porque dar muchos problemas, pero lo ideal seria hacer una sola sentencia de las 2.
Si alguien sabe como hacer esto o incluso me puede recomendar un manual o un libro de SQL le estarÃa muy agradecido.
Marc.
		    Instale la ayuda en linea de SQL
http://www.microsoft.com/sql/techinfo/productdoc/2000/books.asp
    http://www.microsoft.com/sql/techinfo/productdoc/2000/books.asp
		    Anidar select con el puto access (que va a su bola, independizandose de lo que es en realidad SQL)
S de EEEEEESSSSStandar.
SELECT *
from HISTORIAL H
inner join PARCELAS Pa on H.HisFKIdParcela = Pa.IdParcela;
En lugar de poner el inner join a continuación del punto y coma, metes el otro inner join entre la tabla del primer inner join y el on, y pones los paréntesis del siguente modo:
SELECT *
from HISTORIAL H
inner join ( PARCELAS Pa
inner join PERSONA P on
Pa.personaFK=P.Idersona)
on H.HisFKIdParcela = Pa.IdParcela;
Espero que te sirva. Un saludo.
	    
    S de EEEEEESSSSStandar.
SELECT *
from HISTORIAL H
inner join PARCELAS Pa on H.HisFKIdParcela = Pa.IdParcela;
En lugar de poner el inner join a continuación del punto y coma, metes el otro inner join entre la tabla del primer inner join y el on, y pones los paréntesis del siguente modo:
SELECT *
from HISTORIAL H
inner join ( PARCELAS Pa
inner join PERSONA P on
Pa.personaFK=P.Idersona)
on H.HisFKIdParcela = Pa.IdParcela;
Espero que te sirva. Un saludo.
