数据:
Class_Id  Class_Name Parent_ID   Class_Path  Class_Depth  Class_Order  Class_Intro1 家具 0 1 1 1 jiaju
2 家具1 1 1|2 2 2 jiaju1
3 家具2 1 1|3 2 4 jiaju2
4 家具3 0 4 1 7 jiaju3
5 家具4 3 1|3|5 3 5 jiaju4
6 家具5 3 1|3|6 3 6 jiaju5
7 家具6 2 1|2|7 3 3 jiaju6求 分类上移下移的存储过程 

解决方案 »

  1.   

    什么叫做分类上下移?是BOM吗?
    创建用户定义函数,每个子节点de父节点的信息
    --生成测试数据
    create table BOM(ID int,parentID int,sClassName varchar(10))
    insert into BOM values(1,0,'1111'      )
    insert into BOM values(2,1,'1111_1'    )
    insert into BOM values(3,2,'1111-1-1'  )
    insert into BOM values(4,3,'1111-1-1-1') 
    insert into BOM values(5,1,'1111-2'    )go--创建用户定义函数,每个子节点de父节点的信息
    create function f_getParent(@ID int)
    returns varchar(40)
    as
    begin
        declare @ret varchar(40)    while exists(select 1 from BOM where ID=@ID and parentID<>0)
        begin
            select @ID=b.ID,@ret=','+rtrim(b.ID)+isnull(@ret,'')
            from
                BOM a,BOM b
            where
                a.ID=@ID and b.ID=a.parentID
        end
        
        set @ret=stuff(@ret,1,1,'')
        return @ret
    end
    go--执行查询
    select ID,isnull(dbo.f_getParent(ID),'') as parentID from BOM
    go--输出结果
    /*
    ID          parentID                                 
    ----------- ---------------------------------------- 
    1           
    2           1
    3           1,2
    4           1,2,3
    5           1   
    */--删除测试数据
    drop function f_getParent
    drop table BOM
    go
      

  2.   

    Class_Id  Class_Name Parent_ID  Class_Path  Class_Depth  Class_Order  Class_Intro 1        家具          0        1                   1         1          jiaju 
    2       家具1         1       1|2                  2         2          jiaju1 
    3       家具2         1       1|3                  2         4           jiaju2 
    4       家具3         0        4                   1         7            jiaju3 
    5       家具4         3       1|3|5                3         5             jiaju4 
    6       家具5         3       1|3|6                3         6             jiaju5 
    7       家具6         2       1|2|7                3         3             jiaju6 家具5上移到家具4前面  Class_Order的顺序就改变
      

  3.   

    大虾  交叉表 请帮忙!http://topic.csdn.net/u/20091203/15/5109819c-4062-4caf-bfc1-452bb93ce35d.html?51445