Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/11/2011, 13:41
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: 17 años
Puntos: 2658
Respuesta: estoy atascado con una consulta sql (SUM)

Cita:
Iniciado por garciasanchezdani Ver Mensaje
Hola a todos, estoy personalizando un sugarcrm, y necesito almacenar la suma total de horas dedicadas de un empleado, por lo que he creado un nuevo campo para almacenarlo ahí. Hasta aquí bien, pero mi problema viene con la consulta sql:

Código MySQL:
Ver original
  1. SELECT SUM(cantidaddieta_c) FROM actividadestrabajos_cstm
  2.         HAVING SUM = ('SELECT cantidaddieta_c FROM actividadestrabajos_cstm,
  3.         actividadestrabajos WHERE assigned_user_id={$bean->assigned_user_id} and id=id_c')
Con esta consulta trato de coger primero las horas de un empleado (cantidaddieta_c almacena las horas), para después obtener la suma de esas horas...pero no está bien implementando pues el campo que almacena la suma no se rellena...
Espero vuestra ayuda
Daniel
Porque ese HAVING intenta comparar algo (que no existe) con una cadena de texto que contiene una subconsulta que no se ejecuta...
Eso es cualquier cosa, pero no es SQL...
Acuérdate que un apóstrofe entre comillas queda como apóstrofe en la cadena, por lo que pasa al MySQL como apóstrofe, y en MySQL los apóstrofes encierran ... cadenas de texto.

Yendo al ejemplo que supones haber puesto, si lo que quieres hacer es que te devuelva la suma de ese campo, cuando esa suma sea igual al valor del camop en la misma tabla, eso sólo sucederá si el campo es NULL y por tanto el valor es cero, o si sólo hay un registro. Es una cuestión de lógica: Si estás sumando valores, jamás el resultado será igual al valor de uno sólo de sus miembros.
Además, en el extremos de los casos esa subconsulta te devolvería una lista de valores y no un único valor, por lo que tampoco daría un resultado, sino que produciría un error de ejecución.

Como puedes apreciar, la consulta está mal hecha por varios lados.

¿Qué es exactamente lo que quieres obtener?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 16/11/2011 a las 15:20