Обновить две строки из одного подзапроса - PullRequest
0 голосов
/ 31 марта 2020

@ tmp таблица имеет две строки с двумя кодами local1 имеет значения для обоих кодов. Я должен обновить @tmp суммой для обеих строк, соответствующих их кодам

update @tmp set col1=(select sum (isnull(((isnull(e1,0.00)/100.00)
                                                * (isnull(e2, 0))),0.00))  
                from    @tmp tp left join
                        local1 l(nolock) 
                  on    l.code = tp.code    
                where   emp_code        = 123
                group by code )

1 Ответ

0 голосов
/ 31 марта 2020

Одна опция использует оконные функции и обновляемый cte:

with cte as (select col1, sum(e1) over(partition by code) new_col1 from emp_code)
update cte set col1 = coalesce(new_col1, 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...