Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/08/2011, 21:09
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Se puede hacer esto en MySQL

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
  1.     MPR_ID,
  2.     TOT_PVT,
  3.     TOT_ALM,
  4.     (TOT_PVT + TOT_ALM) TOT_GRAL,
  5.     MPR_VALUNIT,
  6.     (MPR_VALUNIT * TOT_GRAL) NUEVO_TOTVAL
  7.     (SELECT
  8.         MPR_ID,
  9.         IFNULL(SUM(PVT.PVT_CANT), 0) TOT_PVT,
  10.         IFNULL(SUM(ALM.ALM_CANT), 0) TOT_ALM,
  11.         MPR_VALUNIT
  12.     FROM
  13.         MPR M
  14.         INNER JOIN
  15.         PVT P ON P.PVT_MPR_ID = P.MPR_ID
  16.         INNER JOIN
  17.         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.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)