sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo crear una columna calculada en una tabla de SQL Server 2008

Puede envolver su consulta en la función de esta manera (TIENE para devolver un valor):

CREATE FUNCTION dbo.SumIt(@Key1 varchar(max))
returns float
as
begin
  return (select sum(UTOTALWBUD) from
   CONTACT1 inner join
   CONTACT2 on
   CONTACT1.ACCOUNTNO=CONTACT2.ACCOUNTNO
   where [email protected]
   group by KEY3)
END

Y use esta función en su lugar con el campo de cálculo, algo como esto:

alter table ManagerTaLog add WeeklyBudget as dbo.SumIt(Key1)

NOTA

que será el asesino del rendimiento para consultas como esa:

select * from ManagerTaLog 

Debe cambiar su función de tal manera que acepte NO varchar valor, pero NVARCHAR(255) - el mismo tipo que la columna Manager. Pruébalo.