返利政策表:
    返利政策ID,说明,公式,有效期始   有效期止
单据资料
  客户名称    商品名称  数量  价格 返利政策ID

解决方案 »

  1.   

    返利政策表:
        返利政策ID,说明,公式,有效期始   有效期止
    单据资料
      单号,时间,客户名称    商品名称  数量  价格 返利政策ID
      
      

  2.   

    举个例:http://expert.csdn.net/Expert/topic/2323/2323708.xml?temp=.2692224
    我用sql server数据库,库中有如下两表。
    表t1保存不同类型人员在消费时的折扣计算公式及奖励积分计算公式,如下:
    类型          折扣价                         积分
    一般会员    本次消费额* 0.95          积分+round(本次消费额/1000)
    白银会员    本次消费额* 0.9            积分+round(本次消费额/1000)
    黄金会员    本次消费额* 0.85          积分+round(本次消费额/1000)
    钻石会员    本次消费额* 0.8            积分+round(本次消费额/1000)表t2中保存人员的消费情况,并要根据t1中各对应字段公式计算其结果,如下:
    会员编号   类型             本次消费额        折扣价          积分
    002         白银会员           1520.00              0               0
    005         黄金会员           3300.00              0               0
    007         一般会员             350.00              0               0
    034         钻石会员             520.00              0               0
    002         白银会员             780.00              0               0如上两表,在sql server查询分析器里我想用t1表中的公式直接用update命令计算出t2表中对应字段的值。命令如下:update t2 set 折扣价=t1.折扣价,积分=t1.积分 from t1,t2 where t1.类型=t2.类型可是执行时却提示说数据类型转换出错,因为t1表中的折扣价字段和积分字段为char型,保存的计算公式,可在t2表中的折扣份和积分字段却为数值型,所以出错。本人要如何才能实现如上算法。请高人们帮我看看我应如何做!查了一夜sql书也找不到办法,只能求教各位了。
    *******************
    create table #t1(类型 varchar(8),折扣价 varchar(100),积分 varchar(100))
    insert #t1 select 
    '一般会员','本次消费额*0.95','积分+round(本次消费额/1000,0)'
    Union all select 
    '白银会员','本次消费额*0.9','积分+round(本次消费额/1000,0)'
    Union all select 
    '黄金会员','本次消费额*0.85','积分+round(本次消费额/1000,0)'
    Union all select 
    '钻石会员','本次消费额*0.8','积分+round(本次消费额/1000,0)'create table #t2(会员编号 char(3),类型 varchar(8),本次消费额 numeric(10,2),折扣价 numeric(10,2),积分 int)
    insert #t2 select
    '002','白银会员',1520.00,     0,      0
    union all select 
    '005','黄金会员',3300.00,     0,      0
    union all select 
    '007','一般会员',350.00,     0 ,     0
    union all select 
    '034','钻石会员',520.00,     0 ,     0
    union all select 
    '002','白银会员',780.00,     0 ,     0
    declare @a char(100),@b varchar(100),@c varchar(100)declare cur cursor for select * from #t1
    open curfetch next from cur into @a,@b,@cwhile @@fetch_status = 0
    begin
      exec('update #t2 set 折扣价='+@b+',积分='+@c+' where 类型='''+@a+'''')
    fetch next from cur into @a,@b,@c
    end
    close cur
    deallocate curSelect * from #t2
    go
    drop table #t1,#t2