Exact online 在单例语句中组合多个条件

Exact online 在单例语句中组合多个条件,exact-online,invantive-sql,invantive-control,invantive-query-tool,Exact Online,Invantive Sql,Invantive Control,Invantive Query Tool,Invantive SQL是否在单个case语句中支持多个条件?我在下面的声明中没有得到任何结果。仅使用1个条件no cascade尝试了相同的语句,这检索到了预期的结果 select prj.code , prj.startdate , prj.enddate from exactonlinerest..projects prj where prj.code between $P{P_PROJECT_FROM} and $P{P_PROJ

Invantive SQL是否在单个case语句中支持多个条件?我在下面的声明中没有得到任何结果。仅使用1个条件no cascade尝试了相同的语句,这检索到了预期的结果

   select prj.code
   ,      prj.startdate
   ,      prj.enddate
   from   exactonlinerest..projects prj
   where  prj.code between $P{P_PROJECT_FROM} and $P{P_PROJECT_TO}
   and    case
   /*       when (prj.enddate is null or prj.enddate >= sysdate)
          then 'Y'   
          when (prj.enddate is not null and prj.enddate <= sysdate)
          then 'N'   */
          when prj.startdate <= sysdate  
          then 'B'  
          end 
          = $P{P_PROJECT_ACTIVE_FROM} 

我认为你们的where条款表述不正确。使用Exact Online,项目可以:

选项1:无结束日期, 选项2:过去的结束日期 选项3:或未来的结束日期 案例的第一部分处理选项1和选项3。第二部分处理选项2。因此,在这种情况下,永远不会出现“B”的结果

要分析此类问题,我建议在select子句中包含该案例并删除过滤器。这会让你看到可能的结果

例如:

use 868056,102673

select prj.division
,      prj.code
,      prj.startdate
,      prj.enddate
,      case
       when prj.enddate is null or prj.enddate >= sysdate
       then 'Y'   
       when prj.enddate is not null and prj.enddate <= sysdate
       then 'N'   
       when prj.startdate <= sysdate  
       then 'B'  
       end 
       indicator
from   exactonlinerest..projects prj   
where  prj.code between $P{P_PROJECT_FROM} and $P{P_PROJECT_TO}   

我认为你们的where条款表述不正确。使用Exact Online,项目可以:

选项1:无结束日期, 选项2:过去的结束日期 选项3:或未来的结束日期 案例的第一部分处理选项1和选项3。第二部分处理选项2。因此,在这种情况下,永远不会出现“B”的结果

要分析此类问题,我建议在select子句中包含该案例并删除过滤器。这会让你看到可能的结果

例如:

use 868056,102673

select prj.division
,      prj.code
,      prj.startdate
,      prj.enddate
,      case
       when prj.enddate is null or prj.enddate >= sysdate
       then 'Y'   
       when prj.enddate is not null and prj.enddate <= sysdate
       then 'N'   
       when prj.startdate <= sysdate  
       then 'B'  
       end 
       indicator
from   exactonlinerest..projects prj   
where  prj.code between $P{P_PROJECT_FROM} and $P{P_PROJECT_TO}