Ver Mensaje Individual
  #10 (permalink)  
Antiguo 29/04/2013, 08:53
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: Consulta acumulada por fecha

Cita:
. Al hacer consultas entre varias tablas en el momento que hago el JOIN me remite diciendo que la subconsulta del acumulado devuelve más de 1 registro.
Es obvio que te va a responder eso, desde el momento en que estás agrupando en ese subselect.
Un subselect dentro del select debe devolver siempre un único valor de un único registro.
Siempre.

Pero además, los subselect dentro del select son asesinos de performance. Sólo se deben usar si es estrictamente necesario, y no se puede obtener el mismo resultado por otro medio. De lo contrario son la peor idea que existe, junto con el "SELECT *" y el "LIKE '%texto%'".

Cita:
porque era un ejemplo que estaba haciendo para el día 5, pero en sí, para cualquier día me debería acumular desde el día 1 hasta el día de la consulta. Ej. si consulto el día 28 de marzo, debería acumularme desde el día 1 de marzo hasta el 28 inclusive.
En ese caso estás parametrizando mal la consulta. Tu condición de fecha debe construirse para ser dinámica:
Código MySQL:
Ver original
  1.     U.NOMBREUNIDAD,
  2.     DU.SECCIONES,
  3.     SUM(PU.GASTOS) ACUM
  4. FROM UNIDADES U
  5.     INNER JOIN PRODUCCIONUNIDAD PU ON U.CODIGO= PU.FKCODIGO
  6.     INNER JOIN DATOSBASEUNIDAD DU ON U.CODIGO = DU.FKCODIGO
  7.     U.FKJEFATURA = 'ALM01'
  8.     AND PU.FECHAPROD BETWEEN CONCAT(YEAR(CURDATE()), '-', MONTH(CURDATE)), '-', DAY(CURDATE))) AND CURDATE()
  9. GROUP BY U.CODIGO
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)