2017-04-03 142 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