-- recalculate CurRate in discipline table update disciplines inner join ( select modules.DisciplineID, SUM(submodules.MaxRate) as rate from submodules inner join modules on submodules.ModuleID = modules.ID where submodules.isUsed and (modules.Type = 'regular' or (modules.Type = 'exam' and modules.OrderNum = 1)) group by modules.DisciplineID ) as t on disciplines.ID = t.DisciplineID set disciplines.CurRate = t.rate;