从以下数据基础我需要选择没有IDQ
条目的所有11.11.2011
。
IDQ | DATE
----------------
1 | 08.11.2011
1 | 09.11.2011
1 | 10.11.2011
1 | 12.11.2011
1 | 13.11.2011
我无法弄清楚如何表达sql
select
IDQ
from
TBL_WITH_IDQ T
where not exists ( DATE = '11.11.2011' ) // sql does not the job
数据库是Oracle 11g。
也许有人可以帮助我?
答案 0 :(得分:1)
尝试:
select idq
from TBL_WITH_IDQ
group by idq
having max(decode("DATE", '11-Nov-2011',1, 0)) = 0 -- double-quoted keyword column name
(单程解决方案) - 如果您的原始表是TBL_WITH_IDQ
另一方面,如果您的原始表格是TBL_WITH_DATES并且您希望包含带有 no 条目的IDQ,我建议使用Parkyprg解决方案的这种变体:
select IDQ
from TBL_WITH_IDQ t
where not exists
(SELECT null
FROM TBL_WITH_DATES d
where d."DATE" = '11-Nov-2011' and t.idq = d.idq)
答案 1 :(得分:0)
select
IDQ
from
TBL_WITH_IDQ T
where IDQ NOT IN ( SELECT IDQ FROM TBL_WITH_DATES where DATE = TO_DATE('11.11.2011','dd.mm.YYYY') )
TBL_WITH_DATES - 是您在问题中使用的表格,TBL_WITH_IDQ是定义IDQ的原始表格。
答案 2 :(得分:0)
你有一张IDQ是唯一标识符的表吗?是这样,您的查询可以像这样改造......
SELECT
*
FROM
primary_idq_table
WHERE
NOT EXISTS (SELECT * FROM TBL_WITH_IDQ WHERE DATE = '11.11.2011')