2014-08-29 4 views
0

Ниже приведен запрос на обновление, который я использую, для которого я получаю сообщение «Неправильный синтаксис рядом с сообщением« group »группы« group ».Неверный синтаксис рядом с ключевым словом 'group'

update PORTFOLIO set p.PF_F_FREE4 = sum(CASE  
WHEN c.FIXING_EXPR = 1 THEN 
i.AMT_AFTER_XACT_DAT/(q.CUR_RATE) 
ELSE 
i.AMT_AFTER_XACT_DAT*(q.CUR_RATE) 
END) 
from PORTFOLIO p, ID_POS_CASH i, CURRENCY c, ID_CUR_QUOTE q 
where p.PF_COD = i.PF_COD and i.CUR_COD = c.CUR_COD 
and c.CUR_COD = q.CUR_COD and p.PF_C_FREE20 NOT IN ('NO ACI PARTICIPATION', NULL) 
and i.SETTLE_DAT = (select POS_MODIFIED_TO from ID_BAT_DAT) 
and (i.AMT_AFTER_XACT_DAT <> 0 or i.AMT_CURRENT<>0) 
group by i.CUR_COD having count(i.CUR_COD) >= 1 

Может ли кто-нибудь помочь мне с вышеуказанным?

ответ

0

Если я не ошибаюсь, ваша проблема заключается в том, что и GROUP BY, и HAVING в заявлении UPDATE.

Я считаю, что ответ заключается в использовании встроенного оператора Select или использования CTE для решения вашей проблемы.

Вот ссылка на аналогичный вопрос (и решения): Update with a Join, Group By, and Having

Смежные вопросы