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 20-03-2007 23: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 20-03-2007 23: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 01: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 02: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 16:17:03

No hay respuestas para esta pregunta ????

Lepe 22-03-2007 16: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 16:56:10

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

Lepe 23-03-2007 12: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 23:36:25.

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