2014-06-17 51 views
1

我有一个带有选择列表的表单。之前,我们只关心用户选择一个调查名称,但现在我们想要在一个集合中存储多个调查名称。NOT IN使用顶点集合进行查询

此外,一旦选择了调查名称,就不应再出现在列表中。以前的查询如下:

Select survey_name, survey_id 
from SURVEYS 

简单的列表。我在使用NOT IN之前已经写过查询,但它们都是基于表格。我在创建我的LOV并合并收藏时遇到了麻烦。我已经尝试以下内容

SELECT survey_name N, survey_id S 
FROM SURVEYS 
where survey_id NOT IN ( 
    SELECT ac.c003 
    FROM apex_collections ac 
    WHERE ac.collection_name = 'BENCHMARKS') 

我正在使用弹出式LOV并且列表未填充。我不知道该怎么做,或者甚至可以用集合来做这样的查询。每次访问该页面时都会创建该集合。当您离开页面时,不希望保存这些值。

对此的任何帮助将大大appreaciated。在advace中感谢

+0

你在哪里测试此查询,在应用程序页面或一个IDE像SQL Developer/TOAD?收集的内容如何填充?如果您使用 在“APEX”页面创建报告'SELECT ac.c003 FROM apex_collections ac WHERE ac.collection_name ='BENCHMARKS'' 报告是否显示任何数据? –

+0

另外:哪里(哪个过程/显示点)被填满?从弹出的lov中选择的值会发生什么?该lov是否打算从同一个父页面多次重复使用? – Tom

回答

0

请小心您的子查询不返回任何空值。一个null将会驱动你的整个NOT IN逻辑。总是为像这样使用的任何子查询添加“非空”条件是一个好习惯。

选择ac.c003
FROM apex_collections交流
WHERE ac.collection_name = '基准' 和ac.c003 IS NOT NULL

相关问题