Comando para contar el numero de registros

Mi nombre es vince y tengo un pequeño inconveniente con un programa, tengo 3 bases de datos diferentes pero, pero necesito contar el numero de registros de un campo carácter en una fecha especifica, en las tres bases y llevar la respuesta a una 4 tabla, consolidando todos los datos.
set decimal to 2
fecha1=DATE ( )
fecha22=DATE ( )
@16,50 SAY 'FECHA DE INICIO:'FONT 'CALISTO MT', 10
@16,71 SAY fecha1
@16,93 SAY 'FECHA FINAL:'FONT 'CALISTO MT', 10
@16,109 SAY fecha22
Read
   Use ticket
     LOCATE FOR FECHA1=FECHA&&.AND.FECHA22>=FECHA
STORE 0 TO IVA10,TOTAL10,TOTAL20
 sum(total) to total10
 sum(iva) to iva10
select COUNT(nombre) to total100 FROM ticket 
total20=cantidad
close data
    USE FACTURA
      LOCATE FOR FECHA1<=FECHA.AND.FECHA22>=FECHA
store 0 to iva20, total30, total40
  sum(total) to total30
  sum(iva) to iva20
 select COUNT(nombre) as cantidad1 FROM ticket 
 total40=cantidad1
 close data
    USE credito
     LOCATE FOR FECHA1<=FECHA.AND.FECHA22>=FECHA
store 0 to iva30, total50, total60
  sum(total) to total50
sum(iva) to iva30
select COUNT(nombre) as cantidad2 FROM ticket 
total60=cantidad2
 close data
 USE LECTURAX
     LOCATE FOR FECHA1<=FECHA.AND.FECHA22=FECHA
replace totalt with total10
replace ivat with iva10
replace nombret with total20
replace totalf with total30
replace ivaf with iva20
replace nombref with total40
replace totalc with total50
 replace ivac with iva30
replace nombrec with total60
Me da la misma respuesta en la 4 base de datos "lecturax"
¿Cómo hago?

2 respuestas

Respuesta
1
Ya leí tu código y la solución puede ser la siguiente (ojo Fecha1 y Fecha22 contienen el mismo valor Date() en tu código esto puede provocar un error de tipo lógico y para efectos del ejemplo disminuiremos en 15 la variable Fecha1 y Fecha debe ser un campo de la tabla actual):
Local Fecha1, Fecha2, lcTotal
Select Factura
Set Deleted On && Impide que cuente los registros eliminados
Fecha1 = Date() - 15
Fecha2 = Date()
Count For Between(Factura.Fecha, Fecha1, Fecha2) To lcTotal
Esto debería solucionar el problema en la anterior línea se cuentas los registros con campo Nombre debido a que dicho campo no debe cumplir ninguna condición específica lo anterior no representa ningún problema, de lo contrario entonces hay un error de lógica en cuanto a asignación de condiciones y con lo cual una línea como la siguiente debería solucionar el problema:
Count For Upper(Factura.Nombre) == "MARIANA RODRÍGUEZ" And Between(Factura.Fecha, Fecha1, Fecha2) To lcTotal
Teniendo en cuenta las anteriores consideraciones, deberías revisar el código del programa.
Respuesta
1
Pero no entiendo bien la pregunta, te refieres a contar los caracteres que hay en el campo o la cantidad de registros que hay en el archivo utilizando ese campo o la cantidad de registros que están en un rango de fechas, ¿o seleccionar datos de las 3 bases y guardarlos en una?, veo el código y no entiendo nada.
Pero una forma de seleccionar datos es
SELECT * FROM ticket WHERE BETWEEN(fecha,fecha1,fecha2) INTO CURSOR datos
nro_registros=_Tally
? nro_registros
No se si eso cumple con lo que necesitas, en todo caso me envías más información para darte una mejor ayuda
Me refería a la cantidad de registros en un rango de fechas, o sea que de las 3 tablas ( ticket, factura y crédito) tenia que seleccionar de cada una de las tablas en el rango de fecha la cantidad de registro; y llevar esas respuestas a una cuarta tabla (lectura X), para así en esta cuarta tabla llevar una base de datos independiante con la cantidad de números de registros por fecha.
Tu aporte fue excelente logre solucionar el inconveniente.
Muchas gracias. Atentamente. vince

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas