Oracle查询正在进行任务

时间:2017-06-28 06:11:20

标签: oracle

我有一个Project表,其中包含ProjectNo,Task,Subtask和status列。对于给定的ProjectNum,如果至少1并且并非所有子任务都处于状态91或16,则任务正在进行中。如何在单个查询中获取给定项目的进行中任务?

1 个答案:

答案 0 :(得分:1)

此查询有一个子查询,用于计算给定任务的所有子任务以及具有给定状态的所有子任务。然后,这是一个简单的案例陈述,以查看任务是否正在进行中。

files/list_folder/continue

子查询具有硬编码with prj as ( select task , count(subtask) as tasks , sum(case when status in ( 91, 16) then 1 else 0 end) as active from project where projectno = 23 group by task ) select task , case when active > 0 and active < tasks then 'Y' else 'N' end as in_progress from prj / 。显然你会想要参数化,但你将如何做到这将取决于你正在使用的客户。

请注意,您的要求意味着无法区分未启动的任务(没有给定状态的子任务)和已完成的任务(所有子任务都具有给定状态)。