码迷,mamicode.com
首页 > 数据库 > 详细

sqlserver 存储过程 递归查询分组+hierarchyid重建会员关系

时间:2017-08-31 17:58:57      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:rar   output   from   group   tostring   user   sql   var   join   

CREATE PROCEDURE [dbo].[GetGroupInfo]
    @s_code NVARCHAR(16) = 0  --会员卡号
AS
BEGIN
declare @p int;                    --查询唯一性结果
declare @sql nvarchar(1000);       --拼接查询sql字串
set @sql=SELECT @p=n_teamlevel FROM t_user_basic WHERE s_code= +@s_code;
exec sp_executesql @sql,N@p AS int OUTPUT,@p OUTPUT;
with cte( NodeID,n_user,s_code,s_introducer,n_teamlevel ) as(
    SELECT 
        NodeID=hierarchyID::Parse(/1/)
        ,n_user
        ,s_code
        ,s_introducer
        ,n_teamlevel 
    FROM t_user_basic
    WHERE s_code=@s_code    
    union all
    SELECT 
        NodeID=cast(b.NodeID.ToString() + cast(ROW_NUMBER() over (order by a.n_user) as varchar(10)) + / as hierarchyid)
        ,a.n_user
        ,a.s_code
        ,a.s_introducer
        ,a.n_teamlevel 
    FROM t_user_basic a
    inner join cte b on (a.s_introducer=b.s_code)
    WHERE  a.s_introducer<>-1 and a.n_user>0 and a.n_teamlevel < @p
)
--SELECT * FROM cte WHERE n_teamlevel < @p and s_code <> @s_code and n_teamlevel <> null;
SELECT cast(NodeID as hierarchyid).ToString(),n_user,s_code,s_introducer,n_teamlevel FROM cte
END


---execute [dbo].[GetGroupInfo] 864160951

 

sqlserver 存储过程 递归查询分组+hierarchyid重建会员关系

标签:rar   output   from   group   tostring   user   sql   var   join   

原文地址:http://www.cnblogs.com/zouke1220/p/7459409.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!