![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
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. |
#2
|
|||
|
|||
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 |
#3
|
||||
|
||||
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. |
#4
|
||||
|
||||
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. |
#5
|
||||
|
||||
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) |
#6
|
||||
|
||||
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. |
#7
|
||||
|
||||
Cita:
![]() Si tienes una tabla PERSONAL con dos campos nada más PERSONAL_CODIGO y PERSONAL_NOMBRE y otra TRABAJOS con los campos TRABAJOS_CODIGO, PERSONAL_CODIGO y TRABAJOS_MONTO y deseas obtener un reporte de éste tipo: Código:
NOMBRE MONTO PEDRO 1.023 JOSE 1.114 etc... ![]()
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. |
#8
|
||||
|
||||
Cita:
Te va a devolver los mismos registros agrupar por código sólo que agrupar por codigo y nombre, pero si quieres incluir el nombre en la select tiene que incluirlo tambien en el group by. Para lo que tu quieres no te hace falta usar un procedimiento almacenado Un saúdo.
__________________
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) |
#9
|
||||
|
||||
Cita:
Cita:
Ya que con eso si lo podría lograr. Cita:
![]() ![]() Pero veo que ahí está la solución al problema, asi que... Lamentablemente hoy no estoy en la oficina, pero mañana, en cuanto llegué, probaré eso y les contaré... Gracias por la ayuda!!!!
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. Última edición por Gabo fecha: 10-10-2007 a las 12:03:42. |
#10
|
||||
|
||||
Cita:
Gracias por tu ejemplo, que me servirá para aprenderlo. ![]()
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. |
![]() |
|
|
![]() |
||||
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 |
![]() |
|