create function getact(@grade int,@newuserid int,@dd int)
returns int
as
begin
declare @a int, @b int, @c int, @a1 int, @b1 int, @act int, @id int
--取出豆豆消费上下两条记录
select top 1 @id =id,@a=dd,@b=activity from headtitle where dd <@dd order by id desc
select top 1 @a1=dd,@b1=activity from headtitle where id>@id
--计算升级后应该得到的活跃值
set @c = (@dd-@a)/(@a1-@a)
set @act = power(@grade,2)*(@grade+4) --根据用户当前等级得到活跃值
set @act=@act+(@b1-@b)*@c --用户新得到的活跃值
return @act
end
go
Create procedure ActivityDateSynch
as
--关联查找出等级数,用户ID,总消费豆豆数 update b set activity=dbo.getact(a.grade,b.newuserid,a.dd)
FROM shop INNER JOIN shitfuck2 ON a.newuserid = b.newuserid
returns int
as
begin
declare @a int, @b int, @c int, @a1 int, @b1 int, @act int, @id int
--取出豆豆消费上下两条记录
select top 1 @id =id,@a=dd,@b=activity from headtitle where dd <@dd order by id desc
select top 1 @a1=dd,@b1=activity from headtitle where id>@id
--计算升级后应该得到的活跃值
set @c = (@dd-@a)/(@a1-@a)
set @act = power(@grade,2)*(@grade+4) --根据用户当前等级得到活跃值
set @act=@act+(@b1-@b)*@c --用户新得到的活跃值
return @act
end
go
Create procedure ActivityDateSynch
as
--关联查找出等级数,用户ID,总消费豆豆数 update b set activity=dbo.getact(a.grade,b.newuserid,a.dd)
FROM shop INNER JOIN shitfuck2 ON a.newuserid = b.newuserid
FROM shop a INNER JOIN shitfuck2 b ON a.newuserid = b.newuserid
@dd int,
@grade intRETURNS INT
ASdeclare @a int, @b int, @c int, @a1 int, @b1 int, @act int, @id int
--取出豆豆消费上下两条记录
select top 1 @id =id,@a=dd,@b=activity from headtitle where dd <@dd order by id desc
select top 1 @a1=dd,@b1=activity from headtitle where id>@id
--计算升级后应该得到的活跃值
set @c = (@dd-@a)/(@a1-@a)
set @act = power(@grade,2)*(@grade+4) --根据用户当前等级得到活跃值
set @act=@act+(@b1-@b)*@c --用户新得到的活跃值 RETURN (@act)
ENDCreate procedure ActivityDateSynch
as update A
set A.activity= DDActivity(B.dd, A.grade)
FROM shitfuck2 A
INNER JOIN shop B
ON A.newuserid = B.newuserid
GO
我没仔细检查语法. 抱歉.