Consideraciones previas:
1- elimina esos asteriscos. Listas de campos forthewin! El asterisco reduce el rendimiento, ocupa memoria y ancho de banda innecesarios y hace que parezcas un vago (lo sé porque soy un vago)
2- considera la posibilidad de utilizar INNER JOINs. Son un asquete de escribir, pero dejar que el motor de la BD haga el trabajo sucio suele ser mejor. Si estás recuperando zillones de registros, quizá no vale la pena el JOIN, pero porsiaca.
Y a continuación un algoritmo (o el "cómo lo haría yo").
Selecciona los datos de la tabla principal (la MARA, supongo). Selecciona los datos de las tablas secundarias utilizando el FOR ALL ENTRIES (asegúrate de que la primera selección devuelve datos o se puede ir todo al carajo.
Haz loops sobre las tablas SECUNDARIAS actualizando la tabla principal
Es mucho más eficaz.