有问题文章留言 看内容决定收费与免费
另外接收数据库质疑 勒索病毒数据恢复等项目。

会员卡如何批量清零

【问题描述】

会员卡批量清零语句?

【问题答案】


在执行下面操作前请先备份用户数据库,如可能请在测试数据测试后执行

–分店日结后,上传所有会员积分后,总店再执行以下语句.注释:分店不允许执行以下语句
连锁版本清除会员积分的步骤:

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

语句执行后如有个别会员卡积分不准确请做手工积分冲减操作



赞(0)
未经允许不得转载:思迅软件知识库 » 会员卡如何批量清零
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址