Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在历史化中选择缺少条目的行?_Sql_Oracle - Fatal编程技术网

Sql 如何在历史化中选择缺少条目的行?

Sql 如何在历史化中选择缺少条目的行?,sql,oracle,Sql,Oracle,从以下数据基础中,我需要选择所有没有2011年11月11日IDQ条目的IDQ 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

从以下数据基础中,我需要选择所有没有2011年11月11日
IDQ
条目的
IDQ

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
数据库是一个Oracle11g

也许有人能帮我

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_-是您在问题中使用的表格,带IDQ的TBL_是定义IDQ的原始表格。

尝试:

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_和_IDQ

另一方面,如果您的原始表是带有日期的TBL_,并且您希望包含完全没有条目的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)

是否有IDQ是唯一标识符的表?就是这样,您的查询可以这样进行修改

SELECT
  *
FROM
  primary_idq_table
WHERE
  NOT EXISTS (SELECT * FROM TBL_WITH_IDQ WHERE DATE = '11.11.2011')

我会使用notexists而不是notin。no
IDQ
不是我的主键。我有一个组合主键,上面有
IDQ
+
DATE
您误解了。您是否有一个不同的表,与您在问题中提到的表不同,其中IDQ是唯一的键?如果将时变数据分配给一个IDQ,那么在某个地方也会有一个IDQ表,这似乎是有道理的。第一个sql似乎完成了这项工作。。我还在评估。谢谢