Alter function fuc (@userid int, @strWhere varchar (max), @strWhere2 varchar (max)) returns decimal (18,2)
As
Begin
DECLARE @useridlist varchar (max) = ", @res decimal (18,2) = 0;
With CTE as
(
Select id,1 Layer from T_user where id=64
UNION ALL
Select A.id,layer=layer+1 from CTE Inner joins t_user A on a.uplineid=cte.id and CTE. Layer<=4
) Select @[email protected]+ ', ' +cast (ID as varchar ()) from the CTE where CTE. Layer<=3
DECLARE @UserGradeDateLine varchar (max) = ";
Select @UserGradeDateLine =usergradedateline4 from T_user where id=64
if (@UserGradeDateLine! = "and DateDiff (d, @UserGradeDateLine, @strWhere) >0 and DateDiff (d, @UserGradeDateLine, @ StrWhere2) >=0)
Begin
Select @res =isnull (sum (amount), 0) from T_orderlucre where CHARINDEX (', ' +cast (UserID2 as varchar) + ', ', @useridlist + ', ') >0 and Groupsign =3 and (DateDiff (MI, @UserGradeDateLine, addtime) >0 and DateDiff (D,addtime, @strWhere2) > =0)
End
Else
Begin
Select @res =isnull (sum (amount), 0) from T_orderlucre where CHARINDEX (', ' +cast (UserID2 as varchar) + ', ', @useridlist + ', ') >0 and Groupsign =3 and (DateDiff (d, @strWhere, Addtime) >0 and DateDiff (D,addtime, @strWhere2) >=0)
End
return @res;
End
SQL statement creation function