我的表有一个父/子关系,沿着parent.id,id。还有一个包含数量的列和另一个代表祖父的ID,如下所示:
id parent.id qty Org 1 1 1 100 2 1 0 100 3 1 4 100 4 4 1 101 5 4 2 101 6 6 1 102 7 6 0 102 8 6 1 102
这应该显示的是ID 1是父,ID 2和3是属于ID 1的子,ID 1,2和3都属于祖父母100。
我想知道是否有任何孩子或父母的QTY = 0,与该父母相关的所有其他身份是什么,以及与该祖父母相关的所有其他父母是什么?
例如,我希望看到一个向我展示的报告:
Org id parent.id qty 100 1 1 1 100 2 1 0 100 3 1 4 102 6 6 1 102 7 6 0 102 8 6 1
非常感谢您可以提供任何帮助来构建MS SQL 2000(是的,我知道)查询来处理这个问题。
答案 0 :(得分:0)
试试这个
select * from tablename a
where exists (select 1 from tablename x
where x.parent_id = a.parent_id and qty = 0)
示例:
;with cte as
( select 1 id,1 parent_id, 1 qty, 100 org
union all select 2,1,0,100
union all select 3,1,4,100
union all select 4,4,1,101
union all select 5,4,2,101
union all select 6,6,1,102
union all select 7,6,0,102
union all select 8,6,1,102
)
select * from cte a
where exists (select 1 from cte x
where x.parent_id = a.parent_id and qty = 0)