我可以使用计算列规范来计算其他表中的变量吗?
我知道如何使用计算列规范来计算表中的变量。比如
(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;
答案 0 :(得分:0)
我认为它是SQL Server。据我所知,computed column
一词仅存在于那里。
根据MSDN(强调是我的):
计算列是根据可以使用其他的表达式计算的 相同表中的列。
此外:
表达式不能是子查询。
因此,您无法使用子查询来计算其他表中的Sum(hour)
值。
您有几个选择:
您可以创建普通列,并在插入或更新记录时使用INSERT/UPDATE
触发器更新此列中的值。
您可以创建VIEW
。在视图中,您将加入StaffInfo表并选择Sum(Hour)值作为视图中的列