2012-09-17 43 views
1

我有一个表上相同的表从视图中计算出的值更新表基于SQL服务器

tblCurrent:

Ref | . .... . . . | Total A | Total B 
A001 |     | NULL |  NULL 
A002 |     | NULL |  NULL 
A003 |     | NULL |  NULL 
A004 |     | NULL |  NULL 

我创建了一个视图vwCurrentB提供的记录数,以满足特定的同一个表中的标准。

如何使用视图中的相关值更新字段Total ATotal B。表格和视图的记录数量完全相同,Ref是唯一的关键字。我只需要在视图中获取额外的两列,将它们分别放入表中的相应记录中?

+1

这将是更好的*不*存储这些计算的总数。只要你存储这样的计算,你立即有可能过时。你为什么不只是使用视图?如果这是性能问题,您是否考虑过索引视图? –

+0

每天都会创建主系统数据库(为大量Web应用程序提供动力)的“快照”,该快照将上传到我们团队的数据库。我们的数据库中没有什么会改变,因为它只是一个每日(和历史)快照。所以在这种情况下,解决方案很好。 – aSystemOverload

+0

@aSystemOverload将系统移动到不同服务器的那一天,您会得到新的引用,或者您希望针对不同情况实施解决方案,您会很高兴商业智能不再依赖于数据。 –

回答

3
update tc 
set TotalA = v.TotalA 
    ,TotalB = v.TotalB 
from tblCurrent tc 
join vwCurrentB v on tc.Ref = v.Ref