两个list合并为一个,缺少的填0,并按其中一个的顺序排列

with cte as

(

     select id,1 level,name from ts_dictionary where parentid=''63"

     union all

     select g.id,level +1,g.name from ts_dictionary g  inner join cte 

     on g.parentid=cte.id

)

select

        isnull(A.depart,B.name) depart,

        isnull(A.count,0) count

from 

(

     select d.name as depart ,count(d.name) as count from ts_data k

     left join

     ts_dictionary d on k.depart=d.id group by d.name

)   A     full join 

     (select name from cte)  B 

     on  A.depart=B.name order by B.name

猜你喜欢

转载自blog.csdn.net/donglicheng666/article/details/81231327