Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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
oracle中的Sql从其不同的值中查找缺少的记录_Sql_Oracle - Fatal编程技术网

oracle中的Sql从其不同的值中查找缺少的记录

oracle中的Sql从其不同的值中查找缺少的记录,sql,oracle,Sql,Oracle,很抱歉,这个不起作用。。。也许我应该早点澄清。值A、B、C、D等。。。是表中代码的不同值。表中有数百个ID,每个ID可以有一到多个代码值。在上面的示例中,假设表A中有5个不同的代码值。有3个ID,每个ID在表A中关联如下 身份证号码 1A 1b 1 C 二维 2A 3 B 3 C 4A 4 B 4 C 4d 4 E 如上所述,有几个ID与不同的代码值关联。我需要的结果如下 身份证号码 一维 1 E 2 B 2 C 2e 3A 三维 3 E ID 4不应返回任何内容,因为它包含所有可能的代码(在本

很抱歉,这个不起作用。。。也许我应该早点澄清。值A、B、C、D等。。。是表中代码的不同值。表中有数百个ID,每个ID可以有一到多个代码值。在上面的示例中,假设表A中有5个不同的代码值。有3个ID,每个ID在表A中关联如下

身份证号码 1A 1b 1 C 二维 2A 3 B 3 C 4A 4 B 4 C 4d 4 E

如上所述,有几个ID与不同的代码值关联。我需要的结果如下

身份证号码 一维 1 E 2 B 2 C 2e 3A 三维 3 E

ID 4不应返回任何内容,因为它包含所有可能的代码(在本例中为A、B、C、D、E)

请尝试此操作

select T2.ID, T1.missing_value
from
(
  select 'A' missing_value from dual UNION
  select 'B' from dual UNION
  select 'C' from dual UNION
  select 'D' from dual UNION
  select 'E' from dual
) T1,
(
  select distinct id from MYTABLE
) T2
WHERE NOT EXISTS
(
  SELECT * FROM MYTABLE M WHERE M.CODE = T1.missing_value and M.ID = T2.ID
)
ORDER BY T2.ID, T1.missing_value 

首先,您应该在不同的子查询中为这两个列取不同的值,然后交叉连接它们-这将提供所有可能的组合, 最后排除已经存在的组合

select *
from 
(select distinct ID
from your_table) ytI, /* this sub-query will return all possible ID */
(select distinct code
from your_table) ytc /* this sub-query will return all possible code */
where (ytI.ID,ytc.Code) /* there will be cross-join as there are no join condition between first two tables*/
not in  /* exclude those records which are already present */
(select id,code
from your_table yt_i)

列表(A、B、C、D、E)从何而来?因此您有一个主表,其中说明哪个ID分配了多少代码。如果是这样的话,请在你的问题中分享它。你可以添加一些数据并展示你是如何尝试sqlfiddle的。com@srini如果它值得,请投票/接受它作为答案。