sqlserver 查询已解决

 

不用担心city, plant不同, server_info 通过location_id查询dc_info_a数据

 

SELECT
         s_tb.id,
         s_tb.server_name,
         s_tb.user_id_1,
         user_id_1.USER_NAME AS user_name_1,
         user_id_1.email AS user_email_1,
         s_tb.user_id_2,
         user_id_2.USER_NAME AS user_name_2,
         user_id_2.email AS user_email_2,
         dc_info.city AS city,
         dc_info.plant AS plant,
         dc_info.u AS u 
FROM
         server_list_a s_tb
         LEFT JOIN user_info_a user_id_1 ON user_id_1.id= s_tb.user_id_1
         LEFT JOIN user_info_a user_id_2 ON user_id_2.id= s_tb.user_id_2
         LEFT JOIN (
         SELECT DISTINCT
                   ( id ),
                   city,
                   plant,
                   u = (
                            STUFF((
                                     SELECT
                                               ',' + u 
                                     FROM
                                               (
                                               SELECT
                                                        a.id,
                                                        b.city,
                                                        b.plant,
                                                        b.u 
                                               FROM
                                                        (
                                                        SELECT
                                                                 a.[id],
                                                                 b.[location_id] 
                                                        FROM
                                                                 ( SELECT [id], [location_id] = CAST ( '<v>' + REPLACE( [location_id], '-', '</v><v>' ) + '</v>' AS xml ) FROM server_list_a ) a OUTER APPLY (
                                                                 SELECT
                                                                           [location_id] = T.C.value ( '.', 'varchar(50)' ) 
                                                                 FROM
                                                                 a.[location_id].nodes ( '/v' ) AS T ( C )) b 
                                                        ) a,
                                                        dc_info_a b 
                                               WHERE
                                                        a.location_id = b.id 
                                               ) temp 
                                     WHERE
                                               id = fina.id FOR XML PATH ( '' ) 
                                               ),
                                     1,
                                     1,
                                     '' 
                            ) 
                   ) 
         FROM
                   (
                   SELECT
                            a.id,
                            b.city,
                            b.plant,
                            b.u 
                   FROM
                            (
                            SELECT
                                     a.[id],
                                     b.[location_id] 
                            FROM
                                     ( SELECT [id], [location_id] = CAST ( '<v>' + REPLACE( [location_id], '-', '</v><v>' ) + '</v>' AS xml ) FROM server_list_a ) a OUTER APPLY (
                                     SELECT
                                               [location_id] = T.C.value ( '.', 'varchar(50)' ) 
                                     FROM
                                     a.[location_id].nodes ( '/v' ) AS T ( C )) b 
                            ) a,
                            dc_info_a b 
                   WHERE
                            a.location_id = b.id 
                   ) fina 
         ) AS dc_info ON s_tb.id = dc_info.id

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值