怎么根据不同字段的值确定查询返回的结果(一个复杂的SQL查询)

求助:如何根据不同字段的值确定查询返回的结果(一个复杂的SQL查询)
求助:如下图,是一个任务(每个任务有N个步骤,每个步骤对应数据库中一条记录)在数据库的存储,如果AppFather_ID是结果为0则表示一个任务的开始,而其对应的App_ID是任务下一步的AppFather_ID。如果App_ID在AppFather_ID中找不到则表示该任务结束。现在我要设计一个查询,返回每个任务的AppO_Title和AppBegin_time和App_time,并且要知道流程总共经历了几个步骤才结束。请指教…………
怎么根据不同字段的值确定查询返回的结果(一个复杂的SQL查询)
------解决思路----------------------
应该是 App_EndTime 吧,App_Time 什么规则?
SELECT App_ID, AppO_Title, AppBegin_time, App_EndTime, 1 Steps, APP_ID NextFID
  INTO #temp
  FROM table1
 WHERE App_FatherID = 0

WHILE @@ROWCOUNT > 0
BEGIN

    UPDATE #temp
       SET #temp.App_Endtime = table1.App_Endtime,
           #temp.Steps = #temp.Stemps + 1,
           #temp.NextFID = table1.APP_ID
      FROM #temp, table1
     WHERE #temp.NextFID = table1.AppFather_ID

END

SELECT App_ID, AppO_Title, AppBegin_time, App_Endtime, Steps
  FROM #temp