日期:2014-05-18  浏览次数:20386 次

根据一个表中的积分给另一个表中的字段赋值?(急)
一个表为会员信息表
create table MemberInfo
(
  MID int identity(1,1) primary key,
  Mem_Name varchar(30),--会员名
  Mem_Num varchar(15),--会员卡号
  Mem_Sex varchar(2),--会员性别
  Mem_Age int, --会员年龄
  Mem_Address varchar(50),--会员住址
  Mem_Phone varchar(20),--会员电话号码
  Mem_Mobilephone varchar(20),--会员手机号码
  --Mem_WorkDate datetime,-- 工龄
  Mem_Type varchar(12),--会员类型(一般VIP会员,星级会员,钻石会员,退休)
  Mem_Mark varchar(16),--会员的积分(这个积分是会员自我消费的积分)
)
一个是提成表
create table SalaryIncrease
(
  SID int identity (1,1) primary key not null,--(与会员表中的Mem_IncreaseID建立主-外建关系)
  SCardName varchar(16),--获得市场积分的会员卡号名
  SMark varchar (16),--会员的市场积分
  SIncease money,--会员每次消费的提成
  SDate datetime default(getdate())--获得该提成时的时间,也是会员获的市场积分的时间SCardName 是等于会员表中的)

目的是通过提成表中的市场积分给会员分等级也就是给会员表中的字段Mem_Type赋值,其中会员表中的Mem_Num等于提成表中SCardName 
(小于1000全部为普通会员,大于1000分为一星级会员,大于2000分为二级,大于4000分为三级,大于6000分为四级,大于8000分为五级,大于10000分为钻石一级,大于20000分为钻石二级,大于40000分为钻石3级,大于60000分为钻石二级,大于80000分为钻石3级)


------解决方案--------------------
我来了。。给我加点分..呵呵。
------解决方案--------------------
嗯,有点错,改一下

SQL code

DECLARE @tmp1 table (SCardName varchar(100) primary key,SMark int)

insert into @tmp1 select SCardNam,sum(cast(SMark as int)) as sumtmp 
from MemberInfo group by SCardNam

select aaa.MID,aaa.Mem_Name,aaa.Mem_Num,
case bbb.sumtmp when bbb.sumtmp<1000 then '普通会员'
                when bbb.sumtmp>1000 and bbb.sumtmp<2000 then '一级会员'
                end
from MemberInfo as aaa inner join @tmp1 as bbb on aaa.Mem_Num=bbb.SCardNam