hola, vereis tengo un update metido en un trigger bastante cañero, pero
resumiendo tengo algo como esto:
update T_lineasDocumento
set Basei = Inserted.precio_unitario*inserted.unidades, -- PU*unidades
total = (Inserted.precio_unitario*inserted.unidades)
+f_impuesto(Inserted.precio_unitario*inserted.unidades) -- Basei + Impuesto
de la Basei
from T_lineasDocumento inner join inserted on
inserted.id_linea=T_lineasDocumento .id_linea
Claro, aquí para hacer referencia cada vez a la Basei tengo que escribir el
cálculo entero. Ufff, esto se llega a hacer incomprensible, a parte que
algunos campos que se calculan no a partir de una simple suma o
multiplicación sino a partir de una función que me realiza una consulta
sobre toda la BD (tiempo de ejecución muy inferior al segundo, pero no
despreciable), entonces claro, me gustaría evitar el tener que llamar a esta
función varias veces dentro de un mismo update.
Si ya se que puedo usar campos calculados, pero esos campos luego no
aparecen en las consultas, con lo cual tendría que en cada select donde
quiera llamarlos volver a calcularlos (una locura). Si se que estan las
vistas y q podría definirlos ahí no se
No se, a mi me gustaría más poder hacer algo como:
declare @bi money
update T_lineasDocumento
set @bi= Inserted.precio_unitario*inserted.unidades, Basei = @bi,
total = @bi
+f_impuesto(Inserted.precio_unitario*inserted.unidades) -- Basei + Impuesto
de la Basei
from T_lineasDocumento inner join inserted on
inserted.id_linea=T_lineasDocumento .id_linea
lo cual hace mucho mas entendible el código, no?
gracias
Leer las respuestas