Tampoco ibamos tan desencaminados, jejeje. Puede ser algo así. Lo único que no he tenido en cuenta que no haya stock en ningún sitio (si tengo un ratillo luego le doy una vuelta a ver)
Código SQL:
Ver originalSELECT ID, id_proveedor, producto, precio, stock
FROM
(
SELECT ID, MIN(PRECIO) AS PRE
FROM TARIFAS
WHERE STOCK > 0
GROUP BY ID
) T1
INNER JOIN TARIFAS TAR ON
T1.ID = TAR.ID AND T1.PRE = TAR.PRECIO