来自相关表的子选项的等价物?

时间:2014-01-04 10:36:25

标签: sql join axapta x++ subquery

我正在尝试使用Query / QueryRun /等在Axapta / X ++中编写以下SQL查询的等效内容。系统:

SELECT FieldA,
       (SELECT SUM(FieldB) FROM TableB X WHERE X.FieldA = TableA.FieldA),
       (SELECT SUM(FieldB) FROM TableB Y WHERE Y.FieldA = TableA.FieldA),
       (SELECT SUM(FieldB) FROM TableB Z WHERE Z.FieldA = TableA.FieldA)
    FROM TableA

但是,据我所知,Axapta不支持subselect字段,所以我不能直接写它。

除了直接使用数据库之外,是否有一些鲜为人知的功能或巧妙的方式来编写此查询?

(我不想迭代TableA并单独运行子查询,因为这就是我的报告现在的工作方式,而且速度太慢了。)

感谢。

1 个答案:

答案 0 :(得分:0)

在这种情况下,我会在TableA上use the display method modifier。 下面是一些伪代码,用作TableA缓冲区方法。

display Amount getX()
{
    TableB tableB;
    ;
    select sum(FieldB) from tableB where tableB.FieldA == this.FieldA)
    return tableB.FieldB; 
}

可以想象,这种方法比SQL方法更昂贵,因此有些datasource caching(scroll to bottom)可以提供帮助 此外,在显示方法上不能进行排序或过滤。

相关问题