CTE~

;WITH TEMP (GROUP_ID,GROUP_NAME,PARENT_GROUP_ID,GROUP_MEMO,VIEW_SORT,TYPE_KBN,CF_NAME)
AS
(
SELECT GROUP_ID
,GROUP_NAME
,PARENT_GROUP_ID
,GROUP_MEMO
,VIEW_SORT
,TYPE_KBN
, CASE WHEN ISNULL(C.CUSTOMER_NAME,'')<>'' THEN C.CUSTOMER_NAME
         WHEN ISNULL(D.FACTORY_NAME,'') <>'' THEN D.FACTORY_NAME
         ELSE '' END CF_NAME
 FROM dbo.FILE_SHARE_GROUP_DATA A
  LEFT  JOIN dbo.CUSTOMER C
 ON A.GROUP_NAME=C.CUSTOMER_ID AND C.DEL_FLG='0'
 LEFT  JOIN  dbo.FACTORY D 
 ON A.GROUP_NAME=D.FACTORY_ID  AND D.DEL_FLG='0'
),
RAINEO(GROUP_ID,GROUP_NAME,PARENT_GROUP_ID,VIEW_SORT,TYPE_KBN,path)
AS                                                                                           
  (                                                                                                         
                SELECT GROUP_ID,GROUP_NAME,PARENT_GROUP_ID,VIEW_SORT,TYPE_KBN                                         
                       ,path=CONVERT(VARCHAR(MAX),GROUP_NAME+'/')                                                     
                FROM TEMP  A                                                                     
                WHERE NOT EXISTS                                                                                      
                      (                                                                                               
                          SELECT *                                                                                    
                          FROM dbo.FILE_SHARE_GROUP_DATA                                                              
                          WHERE GROUP_ID=A.PARENT_GROUP_ID                                                            
                      )                                                                                               
                UNION ALL                                                                                             
                SELECT                                                                                                
                    A.GROUP_ID,A.GROUP_NAME,A.PARENT_GROUP_ID,A.VIEW_SORT,A.TYPE_KBN                                  
                    ,CASE WHEN EXISTS (
         SELECT T.GROUP_ID
         FROM  dbo.FILE_SHARE_GROUP_DATA T
         WHERE PARENT_GROUP_ID IN ('FG000000','FG000002') AND A.GROUP_ID=T.GROUP_ID
          )
        THEN  CONVERT(VARCHAR(MAX),B.path+A.CF_NAME+N'('+A.GROUP_NAME+N')'+'/')
        ELSE  CONVERT(VARCHAR(MAX),B.path+A.GROUP_NAME+'/') 
                          END  path                  
                FROM TEMP  A                                                                     
                    JOIN RAINEO AS B                                                                                  
                ON A.PARENT_GROUP_ID=B.GROUP_ID                                                                       
            )SELECT * FROM RAINEO

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值