Проще не выйдет:
Давай ка посмотрим поближе на скрипт.
Код:
--создаем промежуточную таблицу памяти
--для того чтобы подсчитать кому в даный момент сколько поинтов добавить
declare @TRef table (Referrer_Name varchar(10), points int)
insert into @TRef (Referrer_Name, points)
select r.Referrer_Name, sum(5) from TABLE_Referrer r
inner join Character c on c.name=r.Referrer_AccountID and cLevel>=200
-- COLLATE Latin1_general_CI_AI
inner JOIN MEMB_STAT m ON c.AccountID = m.memb___id and m.ConnectStat=0
-- COLLATE Latin1_general_CI_AI
where r.Add_count=1
group by r.Referrer_Name
Эта таблица была сделана для того, что бы если в определенный момент для Одного игрока одновременно 2 реферала
достигнут указанного левела, то начислилось не 0,5 WMZ а 1.
То есть другими словами
group by r.Referrer_Name -- сгрупировать по тому кто привел
sum(5) -- за каждого кто достиг по 5 поинтов
and m.ConnectStat=0 --юзверь не в сети
and cLevel>=200 --юзверь достиг 200 левела
Второй оператор Update просто подставляет поинты в таблицу Character.
Есни это будут не левелАПпоинты мы просто добавим поле типа BonusPoints.
ммм.дальше уже под себя....