Ver Mensaje Individual
  #3  
Antiguo 23-02-2004
Avatar de haron
haron haron is offline
Miembro
 
Registrado: may 2003
Ubicación: Las Palmas de Gran Canaria
Posts: 310
Reputación: 22
haron Va por buen camino
puedes usar campos calculados.

tendrias dos campos calculados 'fecha_precio_minimo' y 'fecha_precio_maximo' y la siguiente query:

qryFechaPrecio:

Código:
select max(fecha) as fecha
from tabla
where articulo=:articulo
and proveedor=:proveedor
and precio=:precio
he puesto 'max(fecha)' porque podria haber mas de una fecha en la que se alcanza determinado precio por proveedor y articulo.

en el evento 'onCalcField' escribes:

Código:
// fecha en la que se alcanza el precio maximo:
qryFechaPrecio.close;
qryFechaPrecio.paramByName('articulo').value:=articulo; // variable global
qryFechaPrecio.paramByName('proveedor').value:=query['proveedor'];
qryFechaPrecio.paramByName('precio').value:=query['precio_maximo'];
qryFechaPrecio.open;
query['fecha_precio_maximo']:=qryFechaPrecio['fecha'];

// fecha en la que se alcanza el precio minimo:
qryFechaPrecio.close;
qryFechaPrecio.paramByName('articulo').value:=articulo; // variable global
qryFechaPrecio.paramByName('proveedor').value:=query['proveedor'];
qryFechaPrecio.paramByName('precio').value:=query['precio_minimo'];
qryFechaPrecio.open;
query['fecha_precio_maximo']:=qryFechaPrecio['fecha'];
la ventaja que tiene usar campos calculados en lugar de una unica select, es que divides las consultas en subconsultas mas sencillas que se pueden ejecutar en cualquier motor de bases de datos.

la desventaja es que aumentas el trafico en la red y disminuyes la velocidad de ejecucion.
__________________
“Plantad la semilla de la avaricia en la infértil tierra de la estupidez y obtendreis la bella flor de la mierda”
(Confucio)
Responder Con Cita