Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Cómo Sumar (+) Datos De Una Consulta A Bd Que Me Trae Un Arreglo
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Cómo Sumar (+) Datos De Una Consulta A Bd Que Me Trae Un Arreglo 
 
Necesito ayuda por favor:
Estoy trabajando en una aplicación que gestiona una base de datos Mysql. En el formulario "Actividades" se registran los datos de las actividades programadas (día, mes y año de realización, lugar, objetivo, responsable de la act, y el monto previsto para el pago de honorarios) esto es registrado en la bd en la tabla "actividades" con la misma cantidad de campos. La aplicación debe hacer la consulta en la bd y seleccionar solo las actividades del mes  y año seleccionado por el usuario, y sumar los montos para presentar el total en un textbox, pero no se como hacerlo. Hay que considerar que el número de filas que tendrá la selección cambiará constantemente, dependerá del mes seleccionado, además que el usuario irá incorporando nuevas actividades a la programación. Ya se como hacer la consulta sql que me traiga las filas que corresponda a las actividades de ese mes y año, pero no se como sumar los datos del campo "montos" para tener un total.
Imagino que debe ser con un arreglo, pero no se trabajar con ellos . Agradezco mucho el apoyo
 



 
nore - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cómo Sumar (+) Datos De Una Consulta A Bd Que Me Trae Un Arreglo 
 
Buenas compañero, yo sin ser especialista en gambas, vamos ni de lejos, sugeriría a revisión de los más profesionales en este ámbito algo asi:

select sum(Montante) from tblActividades where mes=[txtMES] and anyo=[txtAÑO];

esta query te devuelve la suma de ese mes y año y lógicamente siempre será dinámico porque dependerá de los campos introducidos en el formulario.

Que confirmen los compañeros mi teoría.

Saludos.
 



 
última edición por calcena el Lunes, 18 Julio 2016, 09:08; editado 1 vez 
calcena - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cómo Sumar (+) Datos De Una Consulta A Bd Que Me Trae Un Arreglo 
 
Efectivamente, tal como comenta calcena, la forma correcta de hacerlo es mediante una consulta SQL, ya que los datos son dinámicos y de esa manera nunca tendrás errores. MYSQL dispone de diversas funciones y operadores para esta labor:

http://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html

Todo ello suponiendo que los tipos de los campos de la tabla estén correctamente declarados como FLOAT, DOUBLE, o si quieres resultados exactos usando decimales, usa DECIMAL.

Por otra parte, creo que la estructura de tu base de datos no es correcta, por cuanto que dices que duplicas todos los mismos campos en otra tabla. No sería necesario hacerlo, sino más bien recurrir a tablas relacionadas, consultas compuestas y creación de Vistas para consultas repetitivas. Pero eso requiere de un estudio previo del problema mucho antes de ponerse a escribir una sóla línea de código, que es generalmente donde todo principiante fracasa.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cómo Sumar (+) Datos De Una Consulta A Bd Que Me Trae Un Arreglo 
 
select sum(Montante) from tblActividades where mes=[txtMES] and anyo=[txtAÑO];

Muy bien amigo calcena! esta consulta es perfecta. Ahora como tomo el resultado de la suma y lo coloco en una variable tipo integer? (solo trabajo con montos enteros)
 



 
nore - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cómo Sumar (+) Datos De Una Consulta A Bd Que Me Trae Un Arreglo 
 
Para eso estamos nore, pero como bien te indica jguardon, la optimización de tablas es muy importante, lo que se conoce como normalización de tablas, es decir no puedes repetir datos de una tabla en otra, se debe generar un identificador unico (PK) y éste se debe enlazar en otras tablas (FK).
Todo esto luego a nivel de BD se puede explotar tranquilamente con las clauslas INNER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JON, OUTER JOIN.
Existen 4 niveles de normalización, y minimo se debe llegar hasta la 3ª forma de normalización, para considerar que una base de datos es consistente y razonable a nivel de estructura.

Si haces esto, tu proyecto (sea en el lenguaje que sea como afrontes el FRONT-END) ganará agilidad, sentido, cohesión de datos, estabilidad, coherencia y consistencia.

Saludos.
 



 
última edición por calcena el Lunes, 18 Julio 2016, 16:54; editado 1 vez 
calcena - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Sumar Datos Ingresados En Texbox OneErick General 4 Domingo, 03 Marzo 2013, 18:17 Ver último mensaje
OneErick
No hay nuevos mensajes Field Tipo Time, Me Trae Datos Incorrectos laguneromex Bases de Datos 6 Sabado, 07 Junio 2014, 16:51 Ver último mensaje
laguneromex
No hay nuevos mensajes Leer Un Arreglo De Datos Desde El Usb Ian General 4 Miercoles, 26 Noviembre 2014, 10:18 Ver último mensaje
jsbsan
No hay nuevos mensajes ¿Cómo Enlazar Una Consulta Tipo Result A... Grandamakulo Controles/Librerías/Componentes 7 Miercoles, 17 Febrero 2016, 22:44 Ver último mensaje
Grandamakulo
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron