como sumo una columan de una BD
que ondas cuates:
tengo una pequeña tabla con los siguientes campos y sus registros: id fecha horaini tiempo costo 1 20-09-03 12:00 2 20.00 2 20-09-03 12:00 2 20.00 3 20-09-03 12:00 2 20.00 4 21-09-03 12:00 2 20.00 5 21-09-03 12:00 2 20.00 6 23-09-03 12:00 2 20.00 7 25-09-03 12:00 2 20.00 lo que quiero es saber cuanto suman los registros de la fecha 20 y cuanto de la fecha 20 al 25 pero sin utilizar un reporteador como quickreport o cristal, con puras variables en un form. facil? dime como :confused: |
Hola click, la manera mas rápida de hacerlo es utilizando SQL y sus funciones y claúsulas, de forma general sería algo como:
select SUM (costo) from tutabla where fecha='20/09/03' Después para pesentarlo en la forma: Edit1.Text:= Formatfloat('#,##0.00', query1.fieldbyname('SUM (costo)').AsFloat) Para el caso deL rango entre dos fechas debes utilizar predicate BETWEEN Lo que he escrito es al vuelo pero te vale de punto de partida. Saludos y suerte |
muy bien, la idea ya la tengo, lo que ahora no eh logrado es como hacer para que en lugar de hacer una sola consulta fija todo el tiempo, hacer que sea variable osea que dependa del contenido de un edit, al escribir X fecha se realize la busqueda dependiendo de la fecha que escriba en el edit.
La otra es como hacer que el efecto de la busqueda se refleje en un dbgrid :) |
Supongamos que el Edit donde pones la fecha es "Fecha"
Código:
Query1.SQL.Add('select SUM (costo)'); Código:
Query.ParamByName('f').AsDateTime := Fecha.Date; Código:
Query1.SQL.Add('select SUM (costo)'); Código:
Query1.SQL.Add('select SUM (costo)'); Para el tema de visualizarlo en un TDbGrid, éste tiene la propiedad Datasource donde le puedes asignar un TDataSource, el cual, a su vez tiene la propiedad Dataset a la que le puedes asignar el TQuery (o el componente que utilices para lanzar SQLs) |
ya logre realizar las consultas que necesito, pero ahora mi problema es que no eh logrado ver como paso el valor del sql osea la suma de toda la columna.
select sum(costo) from registro quiero pasarlo a un edit. agradezco sus comentarios |
La consulta te regresará un único registro con un único campo de manera que puedes acceder a él con;
Edit1.Text := Query1.Fields[0].AsString; // Saludos |
cadetill, aqui reviviendo este hilo
Hace ya año y medio me hechaste la mano con esta pregunta, pero eh perdido mi codigo y ahora toy rehaciendo mi programa, pero no recuerdo como lo solucione, pues con tu codigo expuesto aqui no me funciona hoy :confused: es decir, no logro hacer que en el dbgrid aparezca la informacion consultada y otra en el codigo utilizas en las ultimas lineas query me imagino que es query1.
Help... |
La franja horaria es GMT +2. Ahora son las 06:58:57. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi