Hola Gabo
Nose si te he entendido, pero talvez podrías hacer una subconsulta para obtener las fechas maximas agrupado por tipo y empresa.
Código SQL
[-]
select t.tipo_nombre, e.empresa_nombre, p.producto_codigo, p.producto_fecha, p.producto_precio
from tipo t, producto p, empresa e
where (p.tipo_codigo=t.tipo_codigo) and (p.empresa_codigo=e.empresa_codigo)
and p.producto_fecha in (select MAX(producto_fecha)
from producto
group by tipo_codigo, empresa_codigo)
Saluditos