Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/04/2016, 13:31
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: Error al consultar con sub query

El problema es simple: La subconsulta está en el SELECT de la consulta mayor, y para qu efuncione alli debería devolver un único valor, algo imposible si estás agrupando por otro.
Código SQL:
Ver original
  1. SELECT
  2.     rpe,
  3.     (SELECT
  4.             SUM(importe)
  5.         FROM
  6.             b_cijubi,
  7.             b_parame
  8.         WHERE
  9.             cl_afect = '231'
  10.                 AND b_parame.numnomin = b_cijubi.numnomin
  11.                 AND fe_teper BETWEEN '2010-11-10' AND '2011-11-10'
  12.         GROUP BY rpe),
  13.     SUM(importe)
  14. FROM
  15.     b_cijubi,
  16.     b_parame
  17. WHERE
  18.     b_parame.numnomin = b_cijubi.numnomin
  19.         AND fe_teper BETWEEN '2010-11-10' AND '2011-11-10'
  20.         AND cl_afect = '232'
  21. GROUP BY rpe

Para que te funcione, dependiendo de los detalles que están faltando, esa suconsulta debería ser una tabla derivada en el FROM de la mayor. Algo como:
Código SQL:
Ver original
  1. SELECT
  2.     rpe, importeRPE, SUM(importe) total
  3. FROM
  4.     b_cijubi c
  5.         INNER JOIN
  6.     b_parame p ON p.numnomin = c.numnomin
  7.         INNER JOIN
  8.     (SELECT
  9.         rpe, SUM(importe) importeRPE
  10.     FROM
  11.         b_cijubi, b_parame
  12.     WHERE
  13.         cl_afect = '231'
  14.             AND b_parame.numnomin = b_cijubi.numnomin
  15.             AND fe_teper BETWEEN '2010-11-10' AND '2011-11-10'
  16.     GROUP BY rpe) t1 ON t1.rpe = c.rpe
  17. WHERE
  18.     fe_teper BETWEEN '2010-11-10' AND '2011-11-10'
  19.         AND cl_afect = '232'
  20. GROUP BY rpe
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)