Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Sumar campos despues de Filtrado (https://www.clubdelphi.com/foros/showthread.php?t=41615)

Sr.Scorpion 21-03-2007 00:20:24

Sumar campos despues de Filtrado
 
Hola aqui voy con otra

Tengo una Tabla en Access la cual filtro con un Query y tengo hecha otra consulta que suma un campo numerico de la tabla.... despues que filtro dicha tabla el valor de la suma de los numeros ni se inmuta como puedo hacer que en dependencia de lo que filtre el solo sume los registros filtrados ??

Saludos

roman 21-03-2007 00:29:50

Lo que una consulta filtre no afecta a la otra, tendrías que hacer el mismo filtro también en la consulta de la suma:

Código SQL [-]
select sum(campo) from tabla
where
  filtro

// Saludos

Caral 21-03-2007 02:02:12

Hola Roman
No se porque pero en access pide esto:
Código Delphi [-]
select sum(campo) AS [Suma De campo] from tabla
where
  filtro
La verdad estaba tratando de ayudar en otro hilo y no parece que le interese mucho, la verdad perdi el interes tal como el.
Saludos

Sr.Scorpion 21-03-2007 03:52:48

Bueno sigo con problemas... donde deberia poner "where filtro" es en caso de tener ya un filtro en access que no es mi caso ya que tengo un query el cual voy llenando por codigo a medida que se van haciendo cosas en la tabla, es como si fuese un filtro dinamico.... existe posibilidad de poner en vez de "where filtro" poner "where ADOQUERYDINAMICO"...... ??? es solo una idea.. ustedes diran

Gracias a los dos

Sr.Scorpion 22-03-2007 17:17:03

No hay respuestas para esta pregunta ????

Lepe 22-03-2007 17:51:56

Una vez construido el query dinámico, guarda la claúsula where en una variable privada del Form, así puedes reutilizarla.

Saludos

Sr.Scorpion 22-03-2007 17:56:10

Entendi un 50%... podrias explicarme mejor el otro 50% ? :D

Lepe 23-03-2007 13:31:57

¿qué 50 % entendiste? :D

Normalmente tienes puestos checkbox, componentes TDatetimePicker, RadioButtons, etc para que el usuario elija el tipo de filtrado. Después tienes rutinas que según lo seleccionado, construyes la claúsula Where de esa consulta.

En lugar de modificar directamente la propiedad query1.sql para ir añadiendo las restricciones, usa una variable String, donde guardas las restricciones:
Código Delphi [-]

var strWhere: string;
begin 
if radiobutton1.Checked then
  strWhere := strWhere + ' where tipoProducto = 3'

if chkPagado.Checked then
  strWhere := strWhere + ' and pagado = true';

Para el query dinámico:
Código Delphi [-]
  querydinamico.sql.text := 'select * from tabla ' + strWhere;
  querydinamico.Open;

Para el que cuenta los registros:
Código Delphi [-]
  query1.sql.text := 'select count(*) from tabla ' + strWhere;
  Query1.Open;

Saludos.


La franja horaria es GMT +2. Ahora son las 11:25:16.

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