Operaciones con columnas

Experto buenas tardes.
Espero pueda ayudarme con el siguiente problema y de antemano mil gracias por todo su apoyo.
Tengo una tabla con 155 columnas y necesito multiplicar todas las columnas por la columna1
actualmente estoy usando algo así:
select tabla1
scan
select tabla2
replace tabla2.columna2 with tabla1.columna1*tabla1.columna2
replace tabla2.columna3 with tabla1.columna1*tabla1.columna3
...
Hasta terminar con todas las columnas, pero no se si habría una forma más fácil de hacerlo, muchas gracias.

1 respuesta

Respuesta
1
Si de pronto con el siguiente código podrías resolver tu problema :
select tabla1
scan
select tabla2
for i = 2 to 155 * el for va de 2 a 155 asumiendo que tienes las columnas desde la 2 a 155
comando = "replace tabla2.columna" + alltrim(str(i)) + " with tabla1.columna1 * tabla1.columna" + alltrim(str(i))
&comando
next
select tabla1
Endscan
Pega este código y ve si te da el resultado que necesitas.
Experto buenas tardes.
Espero pueda ayudarme con el siguiente problema y de antemano mil gracias por todo su apoyo.
Tengo una tabla con 155 columnas y necesito multiplicar todas las columnas por la columna1
actualmente estoy usando algo así:
select tabla1
scan
select tabla2
replace tabla2.columna2 with tabla1.columna1*tabla1.columna2
replace tabla2.columna3 with tabla1.columna1*tabla1.columna3
...
Hasta terminar con todas las columnas, pero no se si habría una forma más fácil de hacerlo, muchas gracias.
Excelente¡
Entiendo la lógica y me parece excelente, solo que olvide comentar algo
La tabla1 la importo de excel y me pone los nombres de columnas a, b, c, de, e...
Hay una forma de cambiarlos de forma automatizada por columna1, columna2 ...
?
Bueno mil gracias
¿Pero la importación la haces mediante programación o mediante el asistente de importación de vfp?
Creo una tabla con la informacion de excel, algo asi
SET DEFAULT TO 'E:\ejem'
IMPORT FROM "c:\ejemplo1.xls" TYPE XL8 SHEET "Hoja1"
Y luego agrego esa tabla al foxpro para empezar a trabajarla
gracias.
Mmm claro al hacerlo así de ley se te van a crear las columnas con los nombres column1, column2 etc, ahora lo que podrías hacer es usar el comando ALTER TABLE para agregarle filas a esa misma tabla columnas adicionales con los nombres que tu necesitas y después pasar los datos de las columnas column1, column2 a sus respectivas columnas, no se si me doy a entender, más o menos seria así :
Datos
Column1, column2, column3
Esa seria más o menos la estructura de tu tabla entonces agregarías las columnas así
alter table datos add column código n(10)
Alter table datos add column nombre c(80)
Alter table datos add column direccion c(50)
update datos set codigo = column1,nombre=column2,direccion=column3
en teoria ese codigo deberia funcionar si deseas intentalo a ver si resulta, suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas