FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
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
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
muchas gracias, por la ayuda.
Pequeño detalle ese del having. gracias de nuevo, voy a probarlo. |
|
|
|