Por un lado, IIF() no es una función de MySQL, por lo que probablemente esté dando error de sintaxis.
Además, no se pueden usar en el mismo SELECT los alias de los campos como fuente de una operación. Simplemente no funcionará (ignoro por qué puede funcionar en Access, porque Access no es un motor de base de datos).
Por otro lado, siempre es mejor evitar hacer subconsultas dentro de los campos del SELECT. Es una forma muy ineficiente de hacer consultas
A todo esto te podría agregar una sugerencia: Es mejor intentar lograr el resultado con JOINs y no de la forma que lo haces.
Probemos esto:
Código MySQL:
Ver original MPR_ID,
TOT_PVT,
TOT_ALM,
(TOT_PVT + TOT_ALM) TOT_GRAL,
MPR_VALUNIT,
(MPR_VALUNIT * TOT_GRAL) NUEVO_TOTVAL
MPR_ID,
MPR_VALUNIT
MPR M
PVT P
ON P.PVT_MPR_ID
= P.MPR_ID
ALM A
ON A.ALM_MPR_ID
= M.MPR_ID
) T1
;
Te lo puse muy desplegado para que se pueda apreciar mejor la lógica usada.