FoxPro/Visual FoxPro - Generar una nueva tabla

 
Vista:

Generar una nueva tabla

Publicado por marcelo (13 intervenciones) el 04/10/2002 15:28:52
Tengo dos tablas con los siguientes campos
Tabla: ventas
Campos: articulo, cantidad vendida, kilos vendidos

Tabla: Compras
Campos: articulo, Cantidad comprada, kilos comprados

Deseo obtener una tabla con el siguiente resultado
Tabla: resumen
Campos:campo1 (articulo)
Campo2(Cantidad comprada - Cantidad vendidas)
Campo3(Kilos Comprados - Kilos Vendidos)

Hay que considerar que no siempre por cada articulo comprado existe uno vendido
y por cada articulo vendido no siempre hay uno comprado

Agradeceria me ayudaran a obtener la tercera tabla con los campo aqui mencionados

Saludos Marcelo

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

RE:Generar una nueva tabla

Publicado por eric (254 intervenciones) el 04/10/2002 18:23:19
Hola, lo unico que se me ocurre ahorita, salvo la mejor opinion de cualquiera de nuestros amigos del foro, es hacerlo por medio de codigo.
Algo asi:
Tendrias ya hecha la tercera tabla, con los campos articulo, Cantidad comprada, kilos comprados ,Campo2(Cantidad comprada - Cantidad vendidas)
Campo3(Kilos Comprados - Kilos Vendidos)
y entoces agarras tu primera tabla, que llamaremos T1, y el codigo seria
GO TOP
Do while !eof()
scatter memvar
select T3 &&tu tercera tabla, la final
append blank
gather memvar
select t1
skip
enddo
&&&hasta aqui pasariamos los datos a la tabla final, lo mismo podrias hacerlo con un append from, depende de tu gusto, entonces iriamos con la segunda tabla T2
select T2
go top
do while!eof()
select T3
locate for T2.articulo = T3.articulo &&busca que se encuentre
if!found()
append blank
replace T3.articulo with T2.articulo
endif
replace cantidad with (Cantidad comprada - Cantidad vendidas)
replace kilos with Kilos Comprados - Kilos Vendidos)
select T2
skip
enndo
Algo asi se me ocurre, si tienes una mejor idea, o alguien te pasa un mejor TIP, avisame para futuras referencias
E.
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

RE:Generar una nueva tabla

Publicado por Jose Rolando (325 intervenciones) el 04/10/2002 23:04:13
WAIT "Extrayendo registros x articulos..." WINDOW NOWAIT
SELECT Ventas
SCAN
SELECT Compras
DELETE FOR ALLTRIM(Ventas.Articulos) $ Articulos
***Marca para borrar en la tabla Compras todos los articulos que coincidan con la tabla ventas.
SELECT Compras
ENDSCAN

SELECT Compras
WAIT "Copiando..." WINDOW NOWAIT
***Crea una tercera tabla con los archivos marcados
COPY FOR DELETED() TO Resultado
RECALL ALL
SELECT Ventas
Recall all

Antes de probar debes hacer una copia de todo para que evalues el resultado.

Le doy la orde de marcar los registros para borrar para luego poder copiarlos a otra tabla, luego los desmarco. Si tienes dudas consultame.

PD un detalle hasta ahora solo lo hice funcionar con un campo caracter es decir el campo articulo deberia ser de tipo caracter o al menos cambiale para ver los resultados.
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