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

检索出长时间未使用的会员卡

【问题描述】

针对该超市各卡种数量过大请求先检索、后再行决策是否删除僵尸卡。 该超市各类卡种(会员卡、储值卡)数量合计达到151万张,开新店时数据交换量过大造成失败,可否给予语句检索出三年未使用的卡种进行数量登记 。

【答】

请将备份数据库在测试的电脑上还原后进行查询核对,防止正在使用的会员出现异常,以下语句分两步执行

USE hbposev9
–1.解密
if exists(select 1 from sysobjects  where id=object_id(‘f_get_descry_star’))
   drop function f_get_descry_star
go
create function f_get_descry_star(@as_source varchar(50))
returns  decimal(16,4)
WITH ENCRYPTION
as
begin
if @as_source is null or @as_source=” return 0
declare @i int,@ll_len int
declare @ls_text varchar(50),@ls_result varchar(50)
select @ls_text=ltrim(rtrim(@as_source))
select @ll_len=len(@ls_text)
select @ls_result=”
select @i=1
while @i<[email protected]_len
begin
select @[email protected]_result+char(ascii(substring(@ls_text,@i,1)) – (2 * (@ll_len – @i – 2)))
select @[email protected]+1
end
select @ls_result = reverse(@ls_result)
return cast(@ls_result as decimal(16,4))/10000
end
GO
select dbo.f_get_descry_star(residual_amt),residual_amt,* from t_rm_vip_info

–2.查询消费最新时间小于2015-01-01且余额小于0.5的所有类别会员卡
SELECT dbo.f_get_descry_star(residual_amt) AS 卡余额,* FROM t_rm_vip_info WHERE dbo.f_get_descry_star(residual_amt)<0.5 AND   card_id IN (
SELECT card_id FROM (
SELECT card_id,max(pay_time) AS 卡消费最新时间 FROM t_rm_card_paylist
GROUP BY card_id
HAVING max(pay_time)<‘2015-01-01’) aaa)

赞(0)
未经允许不得转载:思迅软件知识库 » 检索出长时间未使用的会员卡
分享到: 更多 (0)

评论 1

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