Multiplicación de campos mediante SQL

Actualmente tengo un programa que tiene consultas SQL. La duda es: ¿Cómo agrego registros en una tabla haciendo previamente una multiplicación de los valores de unos campos de otras tablas?
La situación es la siguiente: existen tres tablas, una de ellas debe recibir como registro la multiplicación de cada registro de dos campos ubicados, cada uno, en una tabla diferente, es decir, la tabla "X" debe recibir el producto de la multiplicación de cada registro del campo "Y", de la tabla "Y", por cada registro del campo "Z", de la tabla "Z". Me imagino que debo usar la expresión INSERT para agregar en la tabla "X" los resultados. Siendo más específico, la operación sería como el siguiente ejemplo:
Tabla Y - Campo Y - Registros: 3, 2
Tabla Z - Campo Z - Registros: 6, 4, 1, 5
Tabla X - Campo X - Resultados a recibir como registros nuevos:
3x6, 3x4, 3x1, 3x5, 2x6, 2x4, 2x1, 2x5
Cada uno de los valores del campo "Y" se multiplicó por cada uno de los valores del campo "Z", luego los resultados se almacenaron en el campo "X"

1 Respuesta

Respuesta
1
Necesitaría saber sobre que motor de bbdd lo necesitas (Visual Basic, Visual Access, AS/400..), así prodré concretar la respuesta.
Fcosapa
Te envío sentencia SQL que inserta en la tabla por el valor multiplicado de un campo de la tabla a y uno de la tabla b. El ejemplo esta en Visual Access, pero es aplicable a otras bases de datos, al menos te sirve de guía.
DoCmd.RunSQL "INSERT INTO [tablax] ([valorax]) " & _
"SELECT [tablaa].valora * [tablab].valorb FROM [tablaa], [tablab]; "
Un saludo,
fcosapa
Hola, gracias por la respuesta. Probaré tus instrucciones apenas esté ante mi computador. En cuanto al motor de BBDD, estoy usando el de Visual Basic.
Me parece buena tu sugerencia. Quisiera saber otra cosa: ¿Es posible traer también los valores de otros campos de la tabla "a" indicándolos en la consulta?
Gracias de nuevo, Antuanper
Si es posible, simplemente entre el select y el from pon los campos cuyos valores quieres insertar en la tabla x. Recuerda que los valores se asignaran por orden de secuencia, es decir, si en el insert pones campo a b y c, y en el select pones x y z (sean de la tabla que sea), la asignación seria a= x, b = y, c = z.
Un saludo,
fcosapa
Muy bien, las instrucciones me sirvieron. Coloqué los campos en el orden deseado y logré insertar los registros tal como los había pensado. Gracias por tu gran ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas