![]() |
BD con campos establecidos y dinamicos
Saludos donde quiera que se encuentren.
Amigos de la comunidad, en esta ocasion, les traigo un problemita, que de verdad, no tengo ni la menor idea, de como buscarlo o resolverlo, con su experiencia creo que no seria dificil para ustedes, pero digamos que esta picante, a ver, como ustedes resolverian esto? a ver si me explico bien que es hasta complicado, Tenemos una base de datos dinamica, en la cual ingresamos datos, y luego los borramos, porque sirve solo a modo visual y luego para crear otros registros, pero ese no es el punto, la cuestion es que la BD se comporta de la siguiente manera, Vamos agregando registros, N Cantidad, eso lo definimos nosotros mediante un control, estamos bien hasta alli, pero ahora supongamos que en esos registros, tenemos uno de Tipo Integer, "Precio". La cuestion es, como definiriamos una ultima fila donde se almacene la sumatoria de toda la columna de precios? y que esta siempre quede de ultimo, osea ella esta definida alli, sumando todos los elementos de arriba, Pienso yo que podriamos ir agregando los registros, ANTES, de esa ultima fila, eso es lo que me tiene cabezon. Gracias por su tiempo y ayuda como siempre, la tecnologia se transfiere pero la experiencia es intransferible :) |
Hola
Para que una fila para sumar otra?. Me imagino que se nenesita el dato de la suma, no se necesita guardarlo. Me parece que con sum() de sql sera suficiente. Saludos |
No, no, una ultima fila para sumar toda una columna.
Mira esta foto, asi es como me gustaria que estuviera ![]() Gracias |
Hola
Eso es exel, no una tabla. Las tablas no se manejan asi, si sumas todos los datos y guardas esa informacion en el ultimo campo la siguiente suma tomara ese dato. Por eso digo que es cuestion de presentar el dato, no de guardarlo, para verlo asi usa un stringrid. Saludos |
No Caral, no me he sabido explicar,
la cuestion es que valla sumando en tiempo de ejecucion a la columna Precio, eso es excel, pero es una representacion mas o menos de lo que tengo en mente, Mira consegui esto: Código:
Select Sum(campo) |
Hola
Te as explicado bien. Sum() lo que hara sera sumar los datos, pero no guardarlos. Si sigues empeñado en guardar el dato deberias de crear otro campo para identificar si es suma o no y otro para la suma, no me parece logico no practico. No lo vas a poder mostrar en un dbgrid de la forma que quieres. Saludos |
Mira lo resolvi, no como queria pero igual me funciona muy bien
inclusive mejor, hice esto mira:
:D Gracias |
No dices que motor de DB estás utilizando.
Por un lado, parece que estás utilizando la DB para almacenar datos temporales, cosa que no es recomendado. En su lugar utiliza un componente como TJvMemoryDataset. Ése componente es parte de la suite Jedi Delphi (Gratuitos). Por último, si es necesario utilizar la Base de datos como almacenamiento temporal, te recomiendo que utilices la claúsula UNION de SQL para conseguir lo que quires. Saludos. |
Buen punto Chris,
Estoy usando Zeos como gestor, y SQLite, estoy usando una tabla para almacenamiento temporal de los datos de la facturacion, la cual se borra cada vez que valla a crearse otra entonces en el momento que la factura esta lista, esta tabla vacia esos datos en otra que es donde se guardaran los registros de facturas, en tablas individuales, no creo que sea el mas optimo proceso, pero hasta ahora es el que me conozco. Hermano no conozco mucho sobre esto realmente, por ejemplo cuando hablas de TJvMemoryDataset realmente me capturas fuera de la base, y cuando mencionas la claúsula UNION de SQL me haces el out :/ que me sugieres? Gracias |
Cita:
|
Cita:
// Saludos |
| La franja horaria es GMT +2. Ahora son las 08:26:04. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi