查询篇--老师课时工资算法详解

2012年04月21日 06:20
点击率:15415
培训机构里常见的课时薪资算法介绍:

一、按员工课时费计算老师课时工资:(SQL Server版)

公式:
上课课时数 × 每课时分钟 ÷ 60 × 每小时薪资 = 实际课时费

实际运算中,由于不同班级每课时的分钟数不一定相同,所以程序是按照每课次结算费用,最后将所有费用汇总得出最终数据的。
这个方法是最简单方便的课时工资计算公式,在很多培训机构里被采纳。老师每小时薪资在员工详细信息里设置:
麦田培训学校管理软件细节

语法:
Select
LessonDegree.TeacherID as 工号,
Users.TrueName as 姓名,
Sum(LessonDegree.Lessons) as 课时,
cast(Sum(LessonDegree.Lessons * Class.LessonMinute) as decimal) / 60 * Users.HourFee as 工资
from
LessonDegree,Class,Users
where LessonDegree.ClassID = Class.ClassID
and LessonDegree.TeacherID = Users.UserID
and LessonDegree.LeStateID = 1
and LessonDegree.StartDate >= {@StartDate:开始日期}
and LessonDegree.StartDate <= {@EndDate:结束日期}
group by LessonDegree.TeacherID,Users.TrueName,Users.HourFee
order by LessonDegree.TeacherID

如果是ACCESS版本,只要将cast(Sum(LessonDegree.Lessons * Class.LessonMinute) as decimal)修改为Sum(LessonDegree.Lessons * Class.LessonMinute)即可。


二、按班级每课时薪资计算老师课时工资:(SQL Server版)

公式:
上课课时数 × 班级每课时薪金 = 实际课时费

实际运算中,由于不同班级每课时提成不一定相同,所以程序是按照每课次结算费用,最后将所有费用汇总得出最终数据的。
这个方法略有点繁琐,需要每次开班时都要设置好班级每课时薪金。
课时提成设置方法:
麦田培训学校管理软件细节

语法:
Select

LessonDegree.TeacherID as 工号,
Users.TrueName as 姓名,
Sum(LessonDegree.Lessons) as 课时,
Sum(LessonDegree.Lessons * Class.LessonCommission) as 工资
from
LessonDegree,Class,Users
where LessonDegree.ClassID = Class.ClassID
and LessonDegree.TeacherID = Users.UserID
and LessonDegree.LeStateID = 1
and LessonDegree.StartDate >= {@StartDate:开始日期}
and LessonDegree.StartDate <= {@EndDate:结束日期}
group by LessonDegree.TeacherID,Users.TrueName
order by LessonDegree.TeacherID

ACCESS版同上。

三、按上课学员实际消耗的课时产出计算老师提成。

公式:某时间内老师所带学员课时消费总额 × 百分比例 = 老师实际课时费

由于优惠数据的存在、多次交费不同单价的存在,学员的实际消费金额与考勤消耗很难精确计算,所以这种计算方式需要付出一定的成本。麦田培训管理软件默认未开启这种精密计算。因为它需要占用很多的资源、消耗更多的性能。所以只有SQL SERVER版用户支持,并且需要预约开启并支付额外的服务费用。


以上内容介绍了培训机构最基本的三种算法,实际应用时SQL构造可能要复杂得多。有的机构可能是两个模式混合使用、大班与一对一分开算法计算、加入基本工资、奖罚数据运算、兼职全职分开运算等。但万变不离其中,理解以上基本算法,就可以轻松实现更复杂的构造。