WHERE V.fecha BETWEEN tDesde AND tHasta AND;
M.IdProducto IN(SELECT IdProducto FROM ProdProv60segunRubro);
INTO CURSOR RR READWRITE
De esta manera, circula menor cantidad de datos por la red, o en todo caso, no trae todos los datos a la vez. Siempre que se quiera optimizar una consulta SQL SELECT, hay que entender que es una sentencia naturalmente "bucle", o sea, hace un proceso repetitivo.
Entonces, en base a dicho entendimiento, como cualquier buen programador sabe, todo lo que no se modifica dentro de un bucle, debe sacarse fuera de él.
En este caso, algo fijo de afuera (los límites de fecha como limites), exige convertir dentro del bucle en forma repetida el campo fecha-hora, entonces, convierto a fecha-hora afuera y no necesito convertir, en cada registro, el dato de la tabla.
Y otra optimización es usar dentro del SQL, la mayor cantidad de clausulas propias del SQL, la función BETWEEN(), no es propia del SQL, es una función del Fox, no se en cuanto podrá afectar el desempeño de la consulta (Victor, logra si, reducir las conversiones del campo fecha a 1 sola contra dos de la original).
Saludos: Miguel, La Pampa (RA)
Larga Vida y Prosperidad
Que la Fuerza les acompañe, sobre todo si aparece "el oscuro de la fuerza"