FoxPro/Visual FoxPro - pasar datos filtrados de una tabla a otra

 
Vista:
sin imagen de perfil

pasar datos filtrados de una tabla a otra

Publicado por Maximiliano (3 intervenciones) el 07/09/2016 23:28:03
hola me gustaria saber como pasar datos filtrados de una tabla a otra
asi lo filtro:

select tabla
go top
GO top
SCAN FOR fecha_tabla=>thisform.text1.value AND fecha_tabla=<thisform.text2.value
z=z+1
ENDSCAN

lo que me gustaria pasar seria una columnas (columna1, columna2,...)
desde ya gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

pasar datos filtrados de una tabla a otra

Publicado por Fidel José (657 intervenciones) el 07/09/2016 23:54:08
Supongo que el código que usas no ese. El comparador es >= y <=. NO al revés.
De todos modos, Visual Fox Pro tiene la función BETWEEN().
GO TOP antes de SCAN es innecesario
ldFecha1 = thisform.text1.Value
ldFecha2 = thisform.Tex2.Value
SELECT TABLA
SCAN FOR BETWEEN(Fecha_tabla , m.ldFecha1, m.ldfecha2)
* Acá va el código significativo
ENDSCAN

Ahora bien, no entiendo qué quieres hacer. Si es generar una tabla nueva, pasar valores a una tabla que ya existe u otra cosa.
Para el segundo caso, cabe preguntar en función de qué pasarías esos valores a otra tabla. No puede ser al voleo.

Para generar un cursor nuevo, te conviene usar SELECT SQL
SELECT * FROM TABLA WHERE FECHA BETWEEN m.ldDia1 AND m.ldDia2 INTO CURSOR curREsulta READWRITE
El asterisco que sigue a select lo puedes reemplazar por las columnas que necesites.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

pasar datos filtrados de una tabla a otra

Publicado por Maximiliano (3 intervenciones) el 08/09/2016 01:03:19
hola, gracias por contestar fidel, lo quiero hacer es contar cuantos registros hay filtrados entre fecha y fecha(lo que me contestaste) y despues que se envien a un reporte, pero cuando lo intente me mostraban todos los registros. por eso queria mandar algunas columnas de la tabla a otra, para poder poner los registro de la segunda (que seria todos los registros filtrados)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

pasar datos filtrados de una tabla a otra

Publicado por Fidel José (657 intervenciones) el 08/09/2016 01:54:11
Usa el modelo de SELECT SQL y haces el reporte en base al cursor generado.
Otra forma es crear un cursor gemelo, que en definitiva hace lo mismo pero con más tabajo.
Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
lcSourceCursor = "Ventas"
lcTargetCursor = "curVentas"
ldDia1 = thisform.text1.value
ldDia2 = thisform.text2.value
 
SELECT * FROM ventas WHERE .f. INTO CURSOR &lcTargetCursor READWRITE
SELECT VENTAS
SCAN FOR BETWEEN(FECHA,m.lddia1,m.lddia2)
	SCATTER TO laPasDat
	INSERT INTO (lcTargetCursor) FROM ARRAY laPasDat
ENDSCAN

Pero lo que sigue es más flexible y más corto de escribir
1
2
3
4
5
6
7
8
9
SELECT * ;
	FROM (lcSourceCursor) ;
	WHERE fecha between ldDia1 AND ldDia2 ;
	ORDER BY fecha ;
	INTO CURSOR &lcTargetCursor READWRITE
IF _tally > 0
	* Hacer reporte, mostrar, etc
ENDIF
USE IN SELECT(lcTargetCursor)

Además aprender SQL te servirá para trabajar con Bases de Datos. Lo otro es solo para DBF.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar