Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erstellen Sie eine berechnete Spalte in einer SQL Server 2008-Tabelle

Sie können Ihre Abfrage wie folgt in die Funktion einbetten (es HAT um einen Wert zurückzugeben):

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

Und verwenden Sie diese Funktion stattdessen mit dem Berechnungsfeld - etwa so:

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

HINWEIS

dass es der Leistungskiller für Abfragen wie diese sein wird:

select * from ManagerTaLog 

Sie sollten Ihre Funktion so ändern, dass Sie NICHT akzeptieren varchar Wert, sondern NVARCHAR(255) - derselbe Typ wie die Manager-Spalte. Probieren Sie es aus.