现在需要做个从地区到学校班级的数据权限,觉得如果先得到这样一个视图是不是会好弄点
但是这样的视图如何拼接出来,数据库是2005
这个是不是可以使用with完成呢?
望指教gov地区表govid    gov
01      地区1
02      地区1
03      地区1school 学校表  (与地区表govid字段关联)
schoolid   school    govid
101        学校1      01
102        学校2      02 
103        学校3      03              class班级表    (与学校表schoolid字段关联)
classid     class      schoolid   
1001        班级1      101
1001        班级2      102 
1001        班级3      103   
最后要得到结果
treecode        treename       parent
01                地区1         null
01.101            学校1         01 
01.101.1001       班级1         01.101

解决方案 »

  1.   

    直接连表就是了, 固定级别的树,又不是不定级别的。不必用cte, 也不适用cte.
      

  2.   

    select govid treecode,gov treename,cast(Null as varchar(20)) parent,idx=1 from t_area
    union all
    select b.govid +','+scoolid, school,b.govid,idx=2 from t_school a inner join t_area b on a.govid = b.govid
    union all
    select 三表连
    order by govid,idx
      

  3.   

    你这个确实只能使用拼接的方式
    select ... form 表1
    union
    select ... form 表1
    的方式,我以前就用过,拼接出来树结构的字段
    然后做数据权限,
    至于with这个主要是递归回去当前节点父节点来说好用点