Cognos 11-查询主题之间的过滤器

Cognos 11-查询主题之间的过滤器,cognos,cognos-11,Cognos,Cognos 11,给定表A的列:ColA1、ColA2、ColA3 表B中有列:ColB1 我想根据表B中的数据限制可以从表A返回的数据,如: ColA1 not in ColB1 理想情况下,可以通过某种方式将SQL查询与select语句合并到过滤器中 SELECT a.ColA1 , a.ColA2 , a.ColA3 FROM TableA a LEFT OUTER JOIN TableB b on b.ColB1 = a.ColA1 WHERE b.ColB1 IS NULL 所以… 查询1包

给定表A的列:ColA1、ColA2、ColA3

表B中有列:ColB1

我想根据表B中的数据限制可以从表A返回的数据,如:

ColA1 not in ColB1
理想情况下,可以通过某种方式将SQL查询与select语句合并到过滤器中

SELECT a.ColA1
, a.ColA2
, a.ColA3

FROM TableA a
  LEFT OUTER JOIN TableB b on b.ColB1 = a.ColA1

WHERE b.ColB1 IS NULL
所以…
查询1包含表A中的ColA1、ColA2和ColA3。
查询2包含表B中的ColB1。
问题3

  • 联接ColA1..1=0..1 ColB1上的Query1和Query2
  • 数据项:ColA1、ColA2、ColA3
  • 筛选器:ColB1不为空

    • 不存在可能是您正在寻找的

      试试这样的

      select * from TableA as T1  
      where not exists                                                  
        (select * from TableB as T2         
          where t1.key1 = t2.key1 and T1.key2 = t2.key2)                
      

      这是在查询主题中,还是在独立筛选器中?在查询主题中,我通过where子句添加了一些过滤器,但它们似乎不起作用。它们在SQL中运行时有效,在Oracle中运行Cognos 11生成的SQL时也有效,但我猜由于Framework Manager中的连接/链接,where子句不知何故被破坏了,因此不起作用我猜您以前从未使用过Cognos?不能在数据项表达式中放入WHERE子句。在Cognos中,您可以拖放。我描述的是创建两个查询并将它们连接到第三个查询——以及如何配置连接。SQL代码用于参考,以防您认为SQL代码比CognosGUI更好。