查询给定一个SQL Server 2012的ID的兄弟行计数

时间:2016-06-27 01:25:17

标签: sql sql-server

如果我有一个表,带有以下样本行的任务

ID  ParentID    Status
1   101     Pending
2   101     Complete
3   101     Complete
4   102     Complete

鉴于ID = 2,如何才能获得属于同一父级的任务数量不完整? 例如

Select Count(ID) from Tasks where Status <> ‘Complete’ and ID =2

上面的查询确实返回了正确的结果

注意,我不想这样做 从任务中选择计数(ID),其中状态&lt;&gt; '完成'和ParentID = 101 即我不想在查询中传递parentID,只是属于同一父级的其中一条记录的ID。

感谢。

3 个答案:

答案 0 :(得分:1)

一种方法使用子查询:

Select Count(t.ID)
from Tasks t
where t.Status <> 'Complete' and
      t.ParentId = (select t2.parentId from Tasks t2 where t2.ID = 2);

答案 1 :(得分:0)

以下查询使用子查询来计算兄弟任务的计数(使用注释代码排除&#34;起点&#34;)

select 
  ParentId, 
  Status, 
  (select count(*) from Tasks t2 where t2.ParentId = t.ParentId and Status <> 'Complete' 
    --  and t2.Id <> t.Id 
  ) as SiblingTaskCount
from Tasks t
Where t.Id = 2

答案 2 :(得分:0)

试试这个,

batonode