2017-04-03 105 views
-1

我需要使用我的quotemodifiers表中ComContribPct的总和更新我的报价表中的ComContribPct。我的报价表中列出的每个报价基本上都会有一笔数额。怎么做 ?现在sql在我的查询的最后一行抱怨我的Group By。贾森 -SQL Group By in Update

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给我

消息156,级别15,状态1,行17 附近关键字 '集团'

+0

您有错误? – scaisEdge

+0

共享错误信息将是第1步。 –

+0

Msg 156,Level 15,State 1,Line 17 关键字'GROUP'附近的语法不正确 –

回答

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 
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 
+0

@Downvoter - 请发表评论?如果这是因为合并的立场,那没关系。 – GurV