zoukankan      html  css  js  c++  java
  • sqlserver 存储过程 递归查询分组+hierarchyid重建会员关系

    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'

    参考博文:http://www.cnblogs.com/Lixinhua-GoOn/archive/2016/01/29/5169297.html

  • 相关阅读:
    ios开源项目2
    Cocoa 框架 For iOS(一) 框架的介绍
    iPhone开源项目大全
    8款iOS的日历开源代码
    二维码扫描工具和开发包 ZBar
    图文解释XCode常用快捷键的使用
    常用的iOS高效开源类库
    static_cast
    [转]SecureCRT rz 上传文件失败问题
    Linux中的EAGAIN含义
  • 原文地址:https://www.cnblogs.com/zouke1220/p/7459409.html
Copyright © 2011-2022 走看看