Select con COUNT y SUM no me funciona
Hace tiempo planteé un duda similar a la que tengo ahora y pensé que adaptando el código que distéis en su momento podría valerme, pero no he sido capaz.
Tengo este query sobre una vista de FB 2.5.6: que me da este resultado: Yo sé que el importe de esos dos registros es de 150€, pero si en el query añado el SUM así: lo que salees esto: y no sé como hacer para que me dé ese resultado. He intentado haciendo un subselect: ya que el importe que hay que sumar está en esa tabla CUOTAS y el campo código es el que relaciona ambas tablas, pero al tratar de ejecutar el query me da un error: Cita:
También he probado esto otro: ya que el campo CODIGO es parte de la clave primaria de esa tabla PERSONA y por lo tanto no está repetido, pero me da el mismo error. |
¿Y la primera te funciona en Firebird?
Yo tenía entendido que en la cláusula group by tienen que estar listados todos los campos del select con valores no agrupados (los que no tienen, sum, count...). Supongo que los pones porque están dentro del where. En todo caso el error es referido a eso, que has añadido una columna y no la incluyes en el group by. |
Estimado Angel.Matilla
Creo que el problema de la suma de importe, puede deberse a los datos que te entrega la vista. Ya que la suma la realiza sobre ese dataset... Podrías compartir el código SQL de la vista que utilizas... Saludos cordiales |
Cita:
Cita:
Es el código que crea la vista |
Pero y los datos originales?
|
Esto sería una muestra del SELECT completo de la vista (en total salen como 22000 registros sin poner filtros). No sé si te refieres a esto.
|
Para que os hagáis una idea:
|
Obvio no queremos miles de registros, pero un conjunto pequeño que muestre los datos (en texto) permite validar el resultado.
|
Al margen de que en cuanto pueda subiré una muestra de los registros de las tablas implicadas, hay una coas que me llama la atención en los dos últimos querys que puse. A ver si alguno me lo explica:
Si este query lo intento ejecutar tal y como está me da el error que antes citaba: Cita:
|
1 Archivos Adjunto(s)
Cita:
|
A ver si puedo ser de ayuda.
Entiendo que una consulta como esta:
Mostrará el sumatorio de los importes de cada uno de los códigos de cuota posible en cada tupla periodo,forma, nomjunta que cumple el filtro. Entiendo que esto no es lo que quieres porque querrías cuantos códigos de cuota posibles distintos hay y el importe total de de todos esos código. Propongo esta consulta par probar:
si no he cometido ningún error al escribirlas estas consultas deberían ejecutarse sin problema. ¿Podrías probarlas y comentar si los resultados de las dos se ajustan a lo que esperas o si la primera ya muestra un importeCuota que no corresponde? |
Gracias por la sugerencia pero ambas dan el mismo error de antes, con el agravante que en la segunda, al haber dos GROUP BY, no es posible saber a cual de ellos afecta auqnue parece que se a la primera línea del query:
Cita:
|
Perdón, Sí parece que he cometido varios errores, esto escribiendo sin probar contra bd y sin tener las tablas y parece que he cometido unos cuantos errores de bulto.
Poniendo peridodo en lugar de periodo en el group by y entendiendo que el cuota que querías era el de cuotas y no la de Rc03. Las cambio un poco, a ver. Esta noche si no has resuelto aún probaré a montar una estructura en mi firebird probar que está claro que escribir así sin probar no es lo mio.
|
Cita:
|
Cita:
Cita:
|
Puedes probar sí esta consulta:
te da un error: Cita:
En esta sentencia todos los campos en el order by están en el group by también. ¿Puedes probar que esta sentencia se ejecuta sin problemas? |
Cita:
|
Claro, lo que estoy intentando hacer es ir por partes, si la consulta anterior se ejecuta sin problemas, puedes probar esta:
|
No, tampoco funciona. Algo parecido ya lo había probado y me sigue sacando la suma de todos los recibos emitidos (4750 € en vez de 150 €). Sé que estoy planteando mal el query pero no veo donde. :mad:
|
La franja horaria es GMT +2. Ahora son las 02:10:06. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi