SQL语句:当给定ID的所有TAK完成时

SQL语句:当给定ID的所有TAK完成时,sql,sql-server,Sql,Sql Server,我正在MS SQL server中查询一个应用程序,在该应用程序中,我监视单个任务何时完成,并希望添加一个列以确定是否已完成所有单个任务,如下所示 tasks, completion_date, additional_column task_1 15-Jan-17 task_1 task_2 21-Jan-17 COMPLETE task_2 06-Jan-17 COMPLETE task_2 12-Dec-16 COMPLETE t

我正在MS SQL server中查询一个应用程序,在该应用程序中,我监视单个任务何时完成,并希望添加一个列以确定是否已完成所有单个任务,如下所示

tasks, completion_date, additional_column
task_1    15-Jan-17
task_1    
task_2    21-Jan-17      COMPLETE
task_2    06-Jan-17      COMPLETE
task_2    12-Dec-16      COMPLETE
task_3
task_3    21-Dec-16

有人能帮我吗?谢谢

我认为最简单的方法是使用ANSI标准窗口函数。这里有一种方法:

select t.*,
       (case when count(*) over (partition by task) = count(completion_date) over (partition by task)
             then 'Complete'
        end) as additional_column
from t;

我认为最简单的方法是使用ANSI标准窗口函数。这里有一种方法:

select t.*,
       (case when count(*) over (partition by task) = count(completion_date) over (partition by task)
             then 'Complete'
        end) as additional_column
from t;

欢迎来到SO。请拿着这本书读一读。欢迎来到SO。请拿着这本书读一读。