el query que te puse es logico que te problemas de sintaxis, ya que no cuento con tu base de datos es solo para que te des una idea de como resolverlo, en cuanto a los errores prueba con esto:
Código SQL:
Ver originalSELECT * FROM(
SELECT * FROM (
SELECT id_material,ubicacion, ISNULL(SUM(cantidad),0) AS total FROM recepcion WHERE id_material = 1 GROUP BY id_material,ubicacion) t1
LEFT JOIN (SELECT MAX(fecha) max_fecha,ubicacion FROM recepcion GROUP BY ubicacion) AS t2 ON (t1.ubicacion=t2.ubicacion)
) t3 ORDER BY max_fecha ASC
saludos!