Prueba con algo asi:
Código:
SELECT p.cod_prod,p.descripcion,sum(precio_prod*cant_prod) as importe, sum(cant_prod) as cantidad
FROM producto p,detalle_factura df,factura f
where fecha between '2006/01/01' and '2006/01/31'
and df.numero=f.numero
and df.cod_prod=p.cod_prod
GROUP BY p.cod_prod,p.descripcion
ORDER BY importe DESC
LIMIT 20
Cambia las fechas por las que necesites (ten encuenta como lo almacenas, con date o datetime) Puedes ordenarlo por importe o cantidad según como quieras.