Oracle查询以获取正在进行的任务

Oracle查询以获取正在进行的任务,oracle,Oracle,我有一个单独的项目表,其中包含ProjectNo、Task、Subtask和status列。对于给定的ProjectNum,如果至少有1个且不是所有子任务都处于状态91或16,则任务正在进行中。如何在单个查询中获取给定项目的正在进行的任务?此查询有一个子查询,用于统计给定任务的所有子任务,以及具有给定状态的所有子任务。然后是一个简单的case语句,用于查看任务是否正在进行 with prj as ( select task , count(subtask) as ta

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

此查询有一个子查询,用于统计给定任务的所有子任务,以及具有给定状态的所有子任务。然后是一个简单的case语句,用于查看任务是否正在进行

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
/
子查询具有硬编码的projectno。很明显,您希望参数化,但如何实现这一点将取决于您使用的客户端


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

请提供您尝试过的内容。