查询篇--老师课时工资算法详解
2012年04月21日 06:20
点击率:19964
|
培训机构里常见的课时薪资算法介绍: 一、按员工课时费计算老师课时工资:(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构造可能要复杂得多。有的机构可能是两个模式混合使用、大班与一对一分开算法计算、加入基本工资、奖罚数据运算、兼职全职分开运算等。但万变不离其中,理解以上基本算法,就可以轻松实现更复杂的构造。
|