db2 是否从包含特定COLLID但不包含另一个特定COLLID的PACKLIST中选择PLANNAME?

nukf8bse  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(151)

应该是一个相当简单的任务,我只是无法理解它。我有一个名为PACKLIST的表,其中包含PLANNAME、COLLID等列。我想找到所有包含特定COLLID 'COL 001'但同时不包含COLLID 'COL 200'的PLANNAME。我已经尝试了很多不同的sql,和一个simpel WHERE COLLID = 'COL 001' AND COLLID!= 'COL 200'如果它工作的话会很好:)希望有人能帮助我。

wfveoks0

wfveoks01#

with PACKLIST(PLANNAME,COLLID) as
(
 SELECT 'PLAN_1','COL001' UNION ALL
 SELECT 'PLAN_1','COL200' UNION ALL
 SELECT 'PLAN_2','COL200' UNION ALL
 SELECT 'PLAN_3','COL001'
)
SELECT P.PLANNAME,P.COLLID
FROM PACKLIST AS P
WHERE P.COLLID='COL001' AND NOT EXISTS
(
  SELECT 1 FROM PACKLIST AS X
  WHERE X.PLANNAME=P.PLANNAME
  AND X.COLLID='COL200'
)

如果适合您的话,您可以试试上面的吗

相关问题