Cómo Sumar (+) Datos De Una Consulta A Bd Que Me Trae Un Arreglo


Objetivo: 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

Perfil MP  
Objetivo: 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
Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: 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)

Perfil MP  
Objetivo: 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
Perfil MP  

Página 1 de 1


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.0894s (PHP: -31% SQL: 131%)
Consultas SQL: 25 - Debug off - GZIP Activado