Mi ultimo código no funciona (me di cuenta ayer) porque la segunda select de la UNION te devolverá todos los registros que tengan algún cero y queremos unicamente los que tengan TODO ceros.
Creo que este si funcionaría (si no funciona, sería algo similar)
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
)
UNION
(
SELECT TA1.ID, TA1.MIN(PRECIO) AS PRE
FROM TARIFAS TA1
EXCEPTION JOIN TARIFAS TA2 ON
TA1.ID = TA2.ID
WHERE TA2.STOCK > 0
GROUP BY ID
)
) T1
INNER JOIN TARIFAS TAR ON
T1.ID = TAR.ID AND T1.PRE = TAR.PRECIO