请问关于SQL存储过程的考勤系统计算方法有关问题,小弟

请教关于SQL存储过程的考勤系统计算方法问题,小弟求助
本帖最后由 i0750 于 2014-07-12 11:52:57 编辑
月薪
 职务津贴:津贴基数总金额,24小时内(含)不扣除,超过24 小时按照请假时数与月基本工时数比例扣除
     公式:职务津贴基数 / 当月应出勤时间 * 实际出勤时间        条件:请假总和 > 24小时
例:       (职务津贴基数金额)   100 /(当月出勤时间) 176 * (实隙地出勤时间)176
                     (职务津贴基数金额)   100 /(当月出勤时间) 168 * (实隙地出勤时间)168

 -----------------------------------------------------
 时薪
 职务津贴:津贴基数 /  176   * 实际出勤工时   
 如果    “保安”和“厨师”津贴基数 /  336   * 实际出勤工时

例:       (职务津贴基数金额)   100 /(当月出勤时间176) 176 * (实隙地出勤时间)176
                     (职务津贴基数金额)   100 /(当月出勤时间168) 176 * (实隙地出勤时间)168

时薪不考虑 -请假或无薪时间,上多少时间都是按  津贴基数 /  176   * 实际出勤工时
 ----------------------------------------------------------------------------------
 
已经定义变量 
 @xzwbt           @xzt               @xzwbtjs                      @xwuxinj           @xybqts
 结果          薪别       职务津贴基数金额           无薪假时间         当月应出勤时间
 ——————————————————————————————————
 怎样修改这段代码??????    
     --职务津贴
            if @xzt='时薪'
              if @xzw='保安管理员'
                 set @xzwbt=round(@xzwbtjs/336*@xcqts,2)
              else
                 set @xzwbt=round(@xzwbtjs/176*@xcqts,2)
            else
               set @xzwbt=(case when @xwuxinj>24 then @xzwbtjs -round(@zwbtjs/176*@xwuxinj,2) else @zwbtjs end)
            set @xzwbt=(case when @xzwbt<0 then 0 else @xzwbt end)
------解决方案--------------------
你是在问,sql 存储过程里的if else 的用法吗?
如果是的话,给你个参考。
语法: if 条件 begin 执行的操作 end else begin 执行的操作 end

sql 存储过程里的if else while