¿Cómo crear una Sentencia Update en Sql que contenga Una Fórmula interna?

Estoy creando un programa para que me actualice todos los campos de una tabla a través de una Sentencia Sql de Update, más o menos esto es lo que quiero:

Update "NombreTabla" set "NombreCampo"=(NombreTabla2.NombreCampo2 * NombreTabla3.NombreCampo3);

Donde NombreTabla2 y NombreTabla3 son otras tablas de la misma Base de datos.

El problema es que Sql no me permite utilizar Fórmulas que contengan Datos directos de otra Tabla o Campo.

¿Existe alguna forma de Hacer algo así a través de SQL?

Si necesitan saber esto estoy haciendo la conexión desde Excel para Sql Server en un VBA.

1 Respuesta

Respuesta

Deberías usar un subquery para obtener las filas de las otras tablas

¿Como exactamente?

Lo que quiero si no me han entendido es que el Valor Resultado de 2 datos de 2 tablas diferentes sea el Valor del Campo en mi Tabla1

¿Cuál es la condición para obtener las filas de las tablas 2 y 3?

Para ser mas especifico, hay 3 Tablas:

1 Contiene Precios de Productos

2 Contiene el Valor del Factor cambio.

3 Contiene Precios de Productos en Dolares

Lo que se necesita es Crear una sentencia o varias sentencias que permitan Multiplicar la valores de tabla 2 y tabla 3 para obtener el Precio en Moneda Local.

Intente directamente por SQL Server crear la sentencia de esta forma:

Update Tabla1 set tabla1.precio1 = tabla3.precio1*tabla2.FactorCambio;

pero no me acepta ningún tipo de operación que contenga alguna variable...

Supongo que las 3 tablas tienen el id_producto:

update tabla1 t1

set precio=(select precio1from tabla3 t3 where t1.id_producto=t3.id_producto) *

                    (select FactorCambio from tabla2 t2 where t1.id_producto=t2.id_producto)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas