2011-10-18 74 views
0

基本上,我有一个数据表与大量的记录(10,000+)使用查询更新现有记录。

他们都有4个共同领域必须输入数据。独特的数据是时间。

我已经完成了一个组排序查询,该查询已经根据这4个字段识别出组的数据,然后计算出每个组的平均时间。

我现在需要在表格中重新插入实时平均时间,以便每个单独记录的时间可以根据其类型的平均值进行评估。

例如,从查询一个小组将有结果

处理1,Week2,Operator3,Shift4,AvgOfTIME = 120.70

然后,它将需要重新插入该平均时间为所有记录中匹配那些标准,但是为每个组结果和记录做。

这甚至可能吗?

回答

2

你需要更新表使用子查询

update t1 set t1.timefield = s2.AvgOfTIME 
from yourtable t1 
inner join 
(
    -- you query for calculating avg time 
) 
as t2 
on t1.Process1 = t2.Process1 and t1.Week2 = t2.Week2 and t1.Operator3 = t2.Operator3 and  t1.Shift4 = t2.Shift4 
+0

您好,感谢您的答复。 我的问题是,通过查询组返回大约7000个不同的组。 因此,我试图获取更新查询来更新它们与相应组匹配的所有记录。否则,我不得不创建7000个更新查询或手动执行它? – user1000556

+0

我不知道,你需要做这样的事情 “ 更新T1组t1.timefield = s2.AvgOfTIME 从yourtable T1 内连接 ( 选择处理1,Week2,Operator3,Shift4你的表模式,但客人,来自yourtable group by Process1,Week2,Operator3,Shift4,Avg(时间字段) ) )作为t2 在t1.Process1 = t2.Process1和t1.Week2 = t2.Week2和t1.Operator3上的AvgOfTime = t2.Operator3和t1.Shift4 = t2.Shift4' –