根据数据显示在选择列表中的极限值

时间:2019-05-09 18:15:33

标签: sql oracle

我有下表:

Table1
___________
Location_ID
User_ID
Type_ID

UserTypes
_________
Type_ID Type_name
1111    Type1
2222    Type2

我正在交互式网格中显示特定位置的数据,并且对于用户类型,有一个选择列表从UserTypes表中提取数据:

SELECT Type_name d, type_id r                                                            
FROM  UserTypes
WHERE (is_active=1 OR type_id = TO_NUMBER(:type_id))

对于每个位置,Type1只能有一个用户,因此每当我向网格中添加记录时, 我想检查该特定位置ID是否已经存在类型Type1的用户,因此,如果存在,我只想在选择列表中显示选项Type 2。 如何修改我的列源以合并它?

1 个答案:

答案 0 :(得分:0)

我认为您想要一个带有EXISTS关键字(例如以下关键字)的解决方案

SELECT Type_name d, type_id r                                                            
  FROM  UserTypes u
 WHERE EXISTS ( SELECT Type_ID 
                  FROM Table1 
                 WHERE Type_ID = u.Type_ID
                   AND Type_ID = TO_NUMBER(:type_id)
                   AND Type_name = 'Type1'
                 GROUP BY Type_ID
                HAVING count(*)=1 
                )
   AND is_active=1
   AND Type_name = 'Type2';