如何使用计算列规范计算其他表中的变量?

时间:2017-03-07 04:14:19

标签: sql

我可以使用计算列规范来计算其他表中的变量吗?

我知道如何使用计算列规范来计算表中的变量。比如

(case when [LastWorkingDate] IS NULL then round(datediff(day,[EntryDate],getdate())/(365.25),(2)) else round(datediff(day,[EntryDate],[LastWorkingDate])/(365.25),(2)) end)

但是如何从另一个表中计算出一个值?

我想这样做,但似乎不太好......

select sum(Hour) from StaffInfo where year = 2012;

1 个答案:

答案 0 :(得分:0)

我认为它是SQL Server。据我所知,computed column一词仅存在于那里。

根据MSDN(强调是我的):

  

计算列是根据可以使用其他的表达式计算的   相同表中的列。

此外:

  

表达式不能是子查询。

因此,您无法使用子查询来计算其他表中的Sum(hour)值。

您有几个选择:

  1. 您可以创建普通列,并在插入或更新记录时使用INSERT/UPDATE触发器更新此列中的值。

  2. 您可以创建VIEW。在视图中,您将加入StaffInfo表并选择Sum(Hour)值作为视图中的列