会员卡批量清零语句?
在执行下面操作前请先备份用户数据库,如可能请在测试数据测试后执行
–分店日结后,上传所有会员积分后,总店再执行以下语句.注释:分店不允许执行以下语句
连锁版本清除会员积分的步骤:
1.营业结束后,门店上传所有的会员相关的所有数据。
2.总部接收完门店数据后,执行清除积分的操作。门店一定不要操作积分清零操作。
如是其中有一步骤有问题,可能会造成清零不成功或不彻底。
针对部分积分有问题的会员卡,在当天晚上营业结束并上传完数据之后,单独针对这些卡做积分冲减操作,确保积分正确。
use hbposv7
go
–批量冲减剩余积分
declare @card_id varchar(20),
@acc_num numeric(16,4),
@dec_num numeric(16,4),
@minus_num numeric(16,4),
@branch_no varchar(4),
@count int
select @branch_no=sys_var_value from t_sys_system where sys_var_id=’g_branch_no’
declare temp_dec_vip cursor for
select card_id,acc_num,dec_num
from t_rm_vip_info where card_type in (select type_id from t_rm_vip_type where acc_flag=’0′);
open temp_dec_vip;
fetch temp_dec_vip into @card_id,@acc_num,@dec_num;
while @@fetch_status=0
begin
select @minus_num = @acc_num – @dec_num
if @minus_num>0
begin
–写积分冲减流水
insert into t_rm_vip_good_flow(vgf_branch_no, vgf_vip_no, vgf_flag, vgf_item_no, vgf_item_num, vgf_vip_num, vgf_oper, vgf_date, memo)
values (@branch_no , @card_id, ‘1’, ”, 0, @minus_num, ‘1001’, getdate(), ‘批量冲减剩余积分’ )
–更新会员档案已冲减积分
update t_rm_vip_info set dec_num=dec_num + @minus_num where card_id=@card_id
–更新积分明细已冲减积分
select @count = 0
select @count=count(*) from t_rm_vip_consume where card_id = @card_id and branch_no = @branch_no
If @count > 0
Update t_rm_vip_consume Set vip_minus_total = isnull(vip_minus_total,0) +@minus_num,com_flag = ‘0’
Where card_id = @card_id and branch_no =@branch_no
Else
Insert t_rm_vip_consume (card_id,branch_no,com_flag,vip_minus_total)
Values (@card_id,@branch_no,’0′,@minus_num)
end
fetch temp_dec_vip into @card_id,@acc_num,@dec_num
end
close temp_dec_vip
deallocate temp_dec_vip
go
语句执行后如有个别会员卡积分不准确请做手工积分冲减操作
!