我已经为使用临时表的客户汇总了负载平均值,并希望使用这些新值更新我们的客户表。我可以进行单次更新等,但想作为一组更新,但不断得到“子查询返回超过 1 个值”。当子查询从第二个代码块中跟随...'时,这是不允许的(#tcAvgs 中的所有值都很好。
create table #tcAvgs
(
AccNo varchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS,
AvgFrame float,
AvgValue float,
AvgJobs float
)
INSERT INTO #tcAvgs (AccNo, AvgFrame, AvgValue, AvgJobs)
SELECT t.accno, ROUND(t.TFrame/t.ccount ,2),ROUND(t.TValue/t.ccount , 2), ROUND( t.CCount/6 ,2)
FROM #tcTotals t
UPDATE c
SET c.AvgFrames = a.AvgFrame,
c.AvgJobs = a.AvgJobs,
c.AvgValue = a.AvgValue
FROM customers c join #tcAvgs a on c.AccountNo = a.AccNo
我看过很多不同的方法,它们似乎都给出了相同的错误,我想知道我是否必须硬着头皮循环遍历临时表进行单独更新?我是否缺少有关 SQL 进行多次更新(尽管有很多单次更新)的能力的基本知识。
任何朝着正确方向的推动将不胜感激。