返回与值匹配的行,除非其唯一标识符与错误的值匹配

dgjrabp2  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(253)

问题:

我有一张这样的table:

我想退回以下内容:

我只想返回项目类别的组,其中该类别中的所有项目只能是关闭的阶段。

**我试过的:*这是我所得到的,但它只生成一个所有项目的列表,其中有一个阶段是关闭的,但我想排除项目类别中的任何项目没有关闭。

SELECT Project_Category, Project, Stage, Reason
  FROM Table
  WHERE Project_Category IN (
    SELECT Project_Category
    FROM Table
    GROUP BY Project_Category
    HAVING COUNT(DISTINCT Project) > 1
  )
  AND Stage = 'Closed'
  AND Reason = 'no award'
  ORDER BY Project_Category
nc1teljy

nc1teljy1#

我只想返回项目类别的组,其中该类别中的所有项目只能是关闭的阶段。
你可以用 not exists :

select t.*
from t
where not exists (select 1
                  from t t2
                  where t2.Project_Category = t.Project_Category and 
                        t2.Stage <> 'Closed'
                 )

相关问题