FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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
__________________
Saludos. |
#2
|
|||
|
|||
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 |
#3
|
|||
|
|||
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
__________________
Saludos. |
#4
|
|||
|
|||
Supongamos que el Edit donde pones la fecha es "Fecha"
Código:
Query1.SQL.Add('select SUM (costo)'); Query1.SQL.Add('from tutabla'); Query1.SQL.Add('where fecha=:f'); Query.ParamByName('f').AsDateTime := StrToDate(Fecha.Text); Query.Open; Código:
Query.ParamByName('f').AsDateTime := Fecha.Date; Código:
Query1.SQL.Add('select SUM (costo)'); Query1.SQL.Add('from tutabla'); Query1.SQL.Add('where fecha between :fini and :ffin'); Query.ParamByName('f').AsDateTime := StrToDate(FechaIni.Text); Query.ParamByName('f').AsDateTime := StrToDate(FechaFin.Text); Query.Open; Código:
Query1.SQL.Add('select SUM (costo)'); Query1.SQL.Add('from tutabla'); Query1.SQL.Add('where fecha =' + QuotedStr(FormatDateTime('mm/dd/yyyy', FechaIni.Date))); 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) Última edición por __cadetill fecha: 22-09-2003 a las 10:23:58. |
#5
|
|||
|
|||
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
__________________
Saludos. |
#6
|
||||
|
||||
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 |
#7
|
|||
|
|||
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 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...
__________________
Saludos. |
|
|
|