Consulta complicada

13/11/2004 - 16:35 por Antonio Ortiz | Informe spam
Tengo 3 tablas
1) Productos: IDProducto, codigo, Descripcion
2) ProdProv: IDProducto, IDProveedor, Costo
3) Proveedores: IDProveedor, CodProv

No he podido hacer una consulta que me de por resultado una lista de
productos con costo y codigo del proveedor mas barato, esto es; algo silimar
a:

codigo Descripcion Costo CodProv
0010 Mi articulo 12.00 101

alguna sugerencia?

gracias

Antonio Ortiz Ramirez
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com
 

Leer las respuestas

#1 ulises
13/11/2004 - 23:38 | Informe spam
Con :

SELECT IDProducto, MIN(Costo)
FROM ProdProv
GROUP BY IDProducto

obtiene el precio menor existente para los productos, haciendo un join
con la tabla ProdProv obtenemos la lista de proveedores que tengan el
costo menor para los productos :

SELECT p.IDProducto, p.IDProveedor, p.Costo
FROM ProdProv p
JOIN
( SELECT IDProducto, MIN(Costo) as MinCosto
FROM ProdProv
GROUP BY IDProducto ) v
ON p.IDProducto = v.IDProducto AND p.Costo = v.MinCosto

entonces si hacemos un JOIN de Productos, la tabla derivada y la tabla
proveedores podremos obtener lo que deseas :


SELECT t.codigo, t.descripcion, m.Costo, d.CodProv
FROM Productos t
JOIN
( SELECT p.IDProducto, p.IDProveedor, p.Costo
FROM ProdProv p JOIN
( SELECT IDProducto, MIN(Costo) as MinCosto
FROM ProdProv
GROUP BY IDProducto ) v
ON p.IDProducto = v.IDProducto AND p.Costo = v.MinCosto ) m
ON t.IDProducto = m.IDProducto
JOIN
Proveedores d
ON m.IDProveedor = d.IDProveedor

esa sería la idea general, prueba el código que lo estoy escribiendo
directamente y no lo he probado.

Saludos,
Ulises

On Sat, 13 Nov 2004 08:35:07 -0700, "Antonio Ortiz"
wrote:

Tengo 3 tablas
1) Productos: IDProducto, codigo, Descripcion
2) ProdProv: IDProducto, IDProveedor, Costo
3) Proveedores: IDProveedor, CodProv

No he podido hacer una consulta que me de por resultado una lista de
productos con costo y codigo del proveedor mas barato, esto es; algo silimar
a:

codigo Descripcion Costo CodProv
0010 Mi articulo 12.00 101

alguna sugerencia?

gracias

Antonio Ortiz Ramirez
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com

Preguntas similares