BOBJ 4.1在一个预定义的条件下使用两个未连接表中的值

时间:2015-01-12 15:25:24

标签: business-objects

我使用了一些预先定义的条件来比较Trade表中的Date字段和GETDATE()函数来计算本月,今年,上一年的交易等。

现在我需要创建一个附加表,其中我将有一组日期代表报告周期的开始和结束日期,例如本年度报告的开始和结束日期,上一年度报告的开始和结束日期等。

此附加表和Trade表未加入。事实上,附加表没有链接到任何东西。

我需要创建一组新的预定义条件,其中Date from Trade表将与新日期表中的值进行比较,即我希望新条件如下所示

Trade.Date < ReportingDates.CurrentYearEndDate 
AND 
Trade.Date > ReportingDates.CurrentYearStartDate

条件验证正常,但不幸的是我得到“查询无法运行,因为它包含不兼容的对象。(IES 00008)”错误“当我尝试执行条件时。

1 个答案:

答案 0 :(得分:1)

您可以在预定义条件中使用子选择,如:

trade.date between (select currentyearstartdate from reportingdates)
               and (select currentyearenddate from reportingdates)

由于reportingdates实际上并未与任何东西连接,因此它不需要位于Universe结构中。这确实有一个缺点 - 从表格列表中看不出它在宇宙中实际需要它。

或者,您可以创建一个将tradereportingdates作为笛卡尔积连接的派生表。派生表将包含两个表中的所有列,因此您的条件就是(假设派​​生表名为DT):

dt.date between dt.currentyearstartdate and dt.currentyearenddate

方法的缺点是所有查询中都包含reportingdates,无论是否需要,SQL都可以有点难读。