¿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.

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