如何查找主记录SQL [英] How to find 'MAIN' master record SQL

查看:16
本文介绍了如何查找主记录SQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在运行查询:

    SELECT
        parent_company_component_id
        ,company_component_id
        ,name
        ,valid_cpy_compnt_type_cs_name
    FROM dbo.cs_company_component
    WHERE company_component_id IN (10217,7726,3109)

,返回以下结果:

我只是碰巧知道这些ID,并在本例中使用它们。

我如何才能将所有关联公司分组在一起,才能返回这样的结果,直到我到达‘Main’公司。

还会有其他几家我不知道ID的公司,我希望能够基本上将这些结果组合在一起,这样我就可以继续通过其父子关联获得主公司的回报。

推荐答案

我刚刚设法让我的CTE正常工作

WITH CTE AS
(
        SELECT
        parent_company_component_id
        ,company_component_id
        ,name
        ,valid_cpy_compnt_type_cs_name
        ,1 AS level
    FROM dbo.cs_company_component
    WHERE parent_company_component_id IS NULL
    --AND valid_cpy_compnt_type_cs_name = 'MAIN'

    UNION ALL

    SELECT X.parent_company_component_ID, X.company_component_id, x.name, x.valid_cpy_compnt_type_cs_name, CTE.level+1 as Level
   FROM CTE
   JOIN cs_company_component AS X ON X.parent_company_component_id = CTE.company_component_id --AND X.valid_cpy_compnt_type_cs_name = 'MAIN'
)
SELECT * FROM CTE
ORDER BY Level ASC

这篇关于如何查找主记录SQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆