提示是否限制业务对象webi富客户端的查询结果?

时间:2017-05-09 19:57:33

标签: sap business-objects

大家好,

我是业务对象的新手。我正在编写一个报表,其中业务层对象是从两个表的列(Say A和B)派生的。表B左外连接表A.我在表B的一列上创建了一个提示。现在,当我在Web Intelligence富客户端中运行查询时,提示将被添加到查询的where条件并禁止表A中可用但不在表B中的记录。请查看下面查询脚本中可用的示例查询。

<code>
Select
A.column1,
B.column2
sum(b.measure)
from TABLE_A LEFT OUTER JOIN TABLE_B ON TABLE_A.ID=TABLE_B.ID
where B.column2=@Prompt()
</code>

我想呈现表A中的所有记录,而不管表B中的数据。有没有办法实现它。我正在使用Business Objects 4.0,信息设计工具和Web智能丰富的客户端来生成报告。

1 个答案:

答案 0 :(得分:0)

执行所需操作的SQL将是:

select
    A.column1,
    B.column2
    sum(b.measure)
from 
    TABLE_A 
    LEFT OUTER JOIN TABLE_B 
        ON TABLE_A.ID=TABLE_B.ID
           AND B.column2=@Prompt()

不幸的是,目前不支持在查询的FROM子句中动态放置@Prompt(),不能创建派生表或捏造A和B之间的连接。

如果这是一次性需求,您可以在报告中修改SQL,但这不是一个持久的解决方案。

根据实际查询的复杂性和表中的数据量,您可以通过多个查询实现所需的结果。从TABLE_B创建一个包含IDCOLUMN1的查询,并从TABLE_B创建另一个包含IDCOLUMN2MEASURE的查询。第二个查询将包含COLUMN2上的@Prompt()。

在报告中,合并ID上的两个查询。您可能必须为COLUMN1COLUMN2创建新变量作为相应ID对象的属性,但完成后,结果应该是您想要的。