【问题标题】:Prompts are restricting the query result in business object webi rich client?提示正在限制业务对象 webi 富客户端中的查询结果?
【发布时间】:2017-05-09 19:57:32
【问题描述】:

大家好,

我是业务对象的新手。我正在编写一份报告,其中业务层对象来自两个表的列(比如 A 和 B)。表 B 与表 A 左外连接。我在表 B 的其中一列上创建了提示。现在,当我在 Web 智能富客户端中运行查询时,提示被添加到查询的 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 智能富客户端来生成报告。

【问题讨论】:

    标签: sap business-objects


    【解决方案1】:

    执行您想要的操作的 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_A 的 ID 和 COLUMN1 的查询,以及另一个包含来自 TABLE_B 的 ID、COLUMN2 和 MEASURE 的查询。第二个查询将包括COLUMN2 上的@Prompt()。

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

    【讨论】:

      猜你喜欢
      • 2011-07-11
      • 2017-02-11
      • 2016-05-05
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      • 2018-06-05
      相关资源
      最近更新 更多