![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Agregar SUM a una consulta
Hola a todos!!
Tengo un problema con una consulta que es para un reporte y necesito sumar algunos campos de ella. El diagrama de la base de datos lo he adjuntado, y por favor no sean mal pensados, usé Access para dibujar las relaciones y poder mostrárselas, nada más. ![]() He llegado hasta esta consulta, como verán hace un resumen de los pagos que debe recibir un trabajador. Por cada demanda de trabajo que el trabajador haya satisfecho, se genera un registro en la tabla DEMANDAPERSONAL. En la consulta que sigue se obtienen todos los pagos que debería recibir un trabajador, pero tengo que modificarla para que me muestre la suma total que debe recibir, es decir, la suma de todos los registros del trabajador y de los campos DEMANDAPERSONAL_EUROS y DEMANDAPERSONAL_EUROSAJUSTE. He intentado varias formas de insertar la función SUM pero no me sale, ¿alguien tiene alguna idea?
Creo que me falto decir que uso Interbase 6.
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. |
|
#2
|
||||
|
||||
|
Quería hacer un comentario sobre SUM. Siempre que he leído o consultado manuales de SQL, para aprender el uso de funciones como esta, me encuentro con ejemplos del tipo:
a lo sumo, alguna incluye un ejemplo con agrupación de registros, al estilo:
Pero cuando he necesitado el uso de esta función, siempre ha sido en casos de consulta a más de una tabla, al estilo:
Y en esos momentos me gustaría insertar un SUM algo así:
Pero siempre me marca error. Lo que no me termina de quedar claro es si se puede ocupar la función SUM cuando estas consultando más de una tabla. Nunca he visto un ejemplo donde se muestre ese caso. Si alguno tiene una consulta como la que menciono, le agradecería que la pusiera para poder ver como se hace, ya que así sabría como resolver el problema del mensaje anterior.
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. |
|
#3
|
|||
|
|||
La manera correcta de usar SUM,COUNT.. debe estar siempre relacionada con la AGRUPACION( GROUP ) que indiques.. y deben de ser los campos que anteceden a la SUM... en este caso seria asi...
Espero te aclare un poco esto...
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton |
|
#4
|
||||
|
||||
|
Cita:
Voy a probarlo, ya que en realidad sólo necesito agrupar por el código, pero si necesito el resto de los datos. Gracias por tu respuesta.
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. Última edición por Gabo fecha: 08-10-2007 a las 17:55:22. |
|
#5
|
||||
|
||||
|
Lo acabo de probar y no funciona...
![]() Ese es el asunto, que necesito que la consulta obtenga más datos de las tablas... Seguiré intentándolo. Si doy con la solución les avisaré.
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. |
|
#6
|
||||
|
||||
|
Cita:
¿Por qué no nos dices lo que quieres conseguir para poder ayudarte mejor?, porque lo de querer obtener un acumulado por un campo que no agrupas no tiene mucho sentido, ya que el resultado como te dije anteriormente sería siempre 1. Un saúdo, y espero poder ayudarte.
__________________
Si no lees esto no vivirás tranquilo Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao) |
|
#7
|
||||
|
||||
|
Es que la función de agrupación funciona así y punto.... no hay más vueltas. Si incluyes una función Sum, avg,etc, debes poner todos los demás campos en el group by
Si por un lado necesitas sumas y además otros campos, realiza 2 consultas, una con el Sum y la otra con los datos que necesitas. En casos complejos, se puede usar un Procedimiento almacenado (si tu SGBBDD lo permite). Edito: acabo de ver que usas Interbase, aquí va un ejemplo de un SP de selección:
Forma de uso:
Como ves en el ejemplo, puedes hacer lo que te apetezca, realmente lo que se hace es construir un registro a mano, como si fuera un puzzle, añadiendo los valores que nos apetezca. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 10-10-2007 a las 11:09:21. |
|
#8
|
|||
|
|||
|
A Veces la Mejor Manera de APRENDER es un LEER e intentar comprender.
Cita:
Cita:
Va de Nuez... Puedes hacer una CONSULTA
Ya entonces creada tu vista puedes jugar con ELLA..
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton Última edición por pcicom fecha: 10-10-2007 a las 17:41:25. |
|
#9
|
||||
|
||||
|
Si eso hago, leo e intento comprender.
![]() Lo que me dijiste en un principio, lo entendí claramente, pero insistí un poco porque hasta ese momento no sabía que agrupando por varios campos no se mezclaban los registros y quería saber si existía alguna manera especial de hacer lo que pretendía. Claro, cuando Lepe me dijo: Cita:
Hasta que Ivanzinho me aclaro el otro punto que desconocía. Gracias por la ayuda, ya que me ha servido para aclarar algunos conceptos que no tenía claros. ![]()
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| agregar componentes | Lucass | Varios | 10 | 28-07-2007 02:27:52 |
| problemas agregar una pc con S.O win 98 a una red | pollo_c | Internet | 1 | 27-02-2007 19:02:28 |
| Como agregar a una lista los nombres de los campos de una consulta. | Luis | Conexión con bases de datos | 2 | 11-11-2004 21:55:56 |
| Agregar items a un comboBox desde una consulta de MYSQL | Juan Carlos | Conexión con bases de datos | 3 | 29-05-2004 22:49:09 |
| Quiero saber como agregar una consulta de SQL a un combobox | Julio César | Varios | 4 | 15-01-2004 13:47:44 |
|