首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSSQL -使用分层查询结果作为子查询

MSSQL -使用分层查询结果作为子查询
EN

Stack Overflow用户
提问于 2017-03-30 17:52:43
回答 1查看 177关注 0票数 0

我想使用层次查询结果作为子查询,但是我得到了一些错误:分层查询:

代码语言:javascript
复制
   select * from (WITH tree (Oid, name, level) AS ( SELECT Oid, Name, 1 as level FROM Company 
                where Oid='20C269DE-A15F-48B3-AFC2-47FBF53C1EAE' and GCRecord is null 
                UNION ALL SELECT child.Oid, child.name, parent.level + 1 FROM Company as child 
                JOIN tree parent on parent.Oid = child.ParentCompany where child.GCRecord is null ) SELECT Oid FROM tree) t

我的问题查询如下:

代码语言:javascript
复制
select  *from DeliverySchedule where Company in ( 
WITH tree (Oid, name, level) AS ( SELECT Oid, Name, 1 as level FROM Company 
                where Oid='20C269DE-A15F-48B3-AFC2-47FBF53C1EAE' and GCRecord is null 
                UNION ALL SELECT child.Oid, child.name, parent.level + 1 FROM Company as child 
                JOIN tree parent on parent.Oid = child.ParentCompany where child.GCRecord is null ) SELECT Oid FROM tree)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-30 17:55:34

试一试:

代码语言:javascript
复制
;with tree ( Oid , name , level ) as (
  select Oid
    , name
    , 1 as level
  from Company
  where Oid = '20C269DE-A15F-48B3-AFC2-47FBF53C1EAE' 
    and GCRecord is null
 union all
 select 
      child.Oid
    , child.name
    , parent.level + 1
  from Company as child
    inner join tree parent 
      on parent.Oid = child.ParentCompany
  where child.GCRecord is null
)

select * 
from DeliverySchedule 
where Company in (select Oid from tree);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43125068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档