Ошибка в хранимой процедуре MS SQL

Необходимо написать хранимую процедуру, которая увеличивает комиссионные у тех продавцов, сумма продаж которых превышает среднюю сумму продаж всей компании. В написанной мной процедуре отображается ошибка (Не удалось привязать составной идентификатор "a.sum_zakaz".) Помогите пожалуйста разобраться, что является причиной данной ошибки? Скрипт:

create procedure comis_plus
@value decimal
as
update prodavec 
set comis_prod=comis_prod+@value
where avg(a.sum_zakaz)<(select sum(a.sum_zakaz)
                        from zakaz a, prodavec b
                        where a.id_prod=b.id_prod)

Ответы (2 шт):

Автор решения: S.H.

Мне кажется - я не проверял - что поменять надо вот что:

    where avg(zakaz.sum_zakaz)<(select sum(a.sum_zakaz)
                            from zakaz a, prodavec b
                            where a.id_prod=b.id_prod)

То есть, синоним a для zakaz относится только к выражению в скобках

→ Ссылка
Автор решения: Aziz Umarov

Так сделайте, у вас обновляется продавец но нет условий на фильтрацию с этой таблицей

create procedure comis_plus
@value decimal
@avgsum decimal
as
-- вычислите среднюю сумму продаж всей компании
SELECT @avgsum = avg(sum_zakaz) FROM zakaz

-- далее имея значение можно не извращяться запросами

update zakaz 
set comis_prod=zakaz.comis_prod+@value
where zakaz.id_prod in (select a.id_prod
                        from zakaz a, prodavec b
                        where a.id_prod=b.id_prod
                        GROUP BY a.id_prod
                        having @avgsum < sum(a.sum_zakaz)                      
                        )

UPD.Изменил процедуру добавил коментариев

→ Ссылка