Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   problema con consulta. (https://www.clubdelphi.com/foros/showthread.php?t=610)

jsanchez 20-05-2003 02:04:50

problema con consulta.
 
Hola foro,

Tengo un pequeño problema con una consulta.

with DMModuloDatos.QVentas do
begin
Close;
sql.clear;
SQL.add('Select Distinct NombreProducto, sum(cantidad) as Cantidad, sum(PrecioExento) as Pagado ');
SQL.add(' from HistoricoCaja, ProduTienda ');
SQL.add('where sum(PrecioExento) > :M1 and sum(PrecioExento)< :M2 and ');
SQL.add('HoraVenta < :HoraF and HoraVenta> :HoraI and ');
SQL.add('FechaVenta Between :FechaI and :FechaF and');
SQL.add(' HistoricoCaja.CodigoProducto=PRoduTienda.CodigoProducto and ');
SQL.add('ProduTienda.CodigoProducto like :Prod');
SQL.add(' Group by NombreProducto order by NombreProducto');
Prepare;
Params[0].AsFloat:=StrToFloat(Edit2.Text);
Params[1].AsFloat:=StrToFloat(Edit3.Text);
Params[2].AsTime:=StrToTime(HoraF);
Params[3].AsTime:=StrToTime(HoraI);
Params[4].AsDate:=StrToDate(Fecha);
Params[5].AsDate:=StrToDate(FechaF);
Params[6].AsDate:=Eprod.Text;
Open;
end;


El problema está en la línea

SQL.add('where sum(PrecioExento) > :M1and sum(PrecioExento)
< :M2 and ');

me da el error: Capability not suported.

Eso que quiere decir que no puedo hacer esa consulta?

Yo lo que quiero mostrar son los datos en los que la suma del precioExento esté entre unos límites. No es permitido?

El otro problema es que al quitar esas condiciones la sentencia funciona perfectamente, pero es un "pelín" lenta. Habría alguna manera de hacer la misma consulta pero más rápido?

Bueno, muchas gracias por todo.

delphi.com.ar 20-05-2003 02:29:49

Es que no podés poner funciones de Grupo en un WHERE, en lugar del WHERE vas a tener que usar un HAVING, que a grandes rasgos es el WHERE para grupos.

Código:

....
Group by NombreProducto order by NombreProducto'
HAVING sum(PrecioExento) >  :M1
    AND sum(PrecioExento) < :M2


jsanchez 20-05-2003 19:35:55

muchas gracias, por la ayuda.

Pequeño detalle ese del having.

gracias de nuevo, voy a probarlo.


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

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