我需要使用我的quotemodifiers表中ComContribPct的总和来更新我的报价表中的ComContribPct。我的报价表中列出的每个报价基本上都有一笔款项。怎么做 ?现在sql在我的查询的底线抱怨我的Group By。 - 杰森
UPDATE q
SET q.ComContribPct= SUM(ISNULL(qm.ComContribPct,0))
FROM Quote q INNER JOIN QuoteModifiers qm ON q.QuoteNum=qm.QuoteNum
GROUP BY qm.QuoteNum
SQL给我
第15行,第15行,第1行,第17行 关键字' GROUP'
附近的语法不正确
答案 0 :(得分:0)
您的查询等同于此(并且您没有更新底部的分组问题)
UPDATE q
set q.ComContribPct = t.my_sum
from Quote q inner join (
select QuoteNum, SUM(ISNULL(ComContribPct,0)) as my_sum
from QuoteModifiers
group by QuoteNum
) t on q.QuoteNum=t.QuoteNum
答案 1 :(得分:0)
您可以在子查询中执行聚合,然后将其加入以进行更新:
update q
set q.ComContribPct = qm.ComContribPct
from Quote q
inner join (
select QuoteNum,
SUM(coalesce(ComContribPct, 0)) as ComContribPct
from QuoteModifiers
group by QuoteNum
) qm on q.QuoteNum = qm.QuoteNum