create table xx (a int,b int,c as a+b)

解决方案 »

  1.   

    ^-^,感谢大家的关注。不能用计算列的。
    之所以没用计算列是因为,所得税的计算麻烦的啊。有两组CASE才搞定的。
      

  2.   

    我的实际做法,感觉不错,可移植性也好。深圳龙岗台资企业计税方式:1:计税方案表
    序号    工资比例  始        止       税率    速算值  
    1 87 0 1599 0 0
    2 87 1600 2099 5 0
    3 87 2100 3599 10 25
    4 87 3600 6599 15 175
    5 87 6600 99999 20 6252:自定义函数计税
    create function test(@a numeric(10,2))
    returns numeric(10,2)
    As
    begin
    declare @b numeric(10,2)
    select @b = ( @a * 工资比例/100 - 始) * 税率 / 100 + 速算值  
    from skm_mstr   
    where floor(@a * 工资比例/100) between 始 and 止
    return @b
    end  3:调用
    Select dbo.test(2000)  -- 计算工资额为2000时的税款。
      

  3.   

    谢谢大家! txlicenhe(马可) 的方案表很好。比我用CASE语句实现代码优化的多。有个问题请教:zjcxc(邹建) 
    “合理的做法应该是,在所有的工资数据录入完成后,调用专门的存储过程来进行工资计算.”按您的说法,如果我有多处有修改工资相关项目的界面和操作,那么,修改的同时他不能看到实发工资的金额!
      

  4.   

    function 是什么东东?
    不认识的说
      

  5.   

    当然,将计税的function 放在计算工资的存储过程中最好(我是放在存储过程中的)