首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dynamics AX嵌套查询

Dynamics AX嵌套查询
EN

Stack Overflow用户
提问于 2011-08-30 07:40:37
回答 3查看 4K关注 0票数 0

也许我错过了一些简单的东西,但是有没有一种方法可以在AX中编写嵌套查询?我尝试了一些我认为会起作用的语法,但没有成功。

下面的标准SQL语句可以完成我想要做的事情,但是我需要在AX中完成,而不是在SQL中。

代码语言:javascript
复制
SELECT table1.column1A, table1.column1B, 
    (SELECT Top 1 column2B FROM table2 
        WHERE table1.column1A = table2.column2A 
        ORDER BY table2.column1A) 
    AS lookupResult 
FROM table1

我的问题是table1与table2有一对多的关系,而且由于AX没有我所知道的独特功能,所以在使用JOIN语句时,我会收到每条记录的许多副本。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-30 19:24:53

AX中不支持嵌套查询。

绕过缺少的distinct的一种方法是使用group by (假设column2B的最大值很有趣):

代码语言:javascript
复制
while select column1A, column1B from table1
    group column1A, column1B
    join max-of(column2B) from table2
    where table2.column2A == table1.column1A     
{
    ...
}

另一种方法是在窗体或报表中使用table1上的显示方法。

代码语言:javascript
复制
display ColumnB column2B()
{    
    return (select max-of(column2B) from table2
                where table2.column2A == this.column1A).column2A;
}

性能不如第一个解决方案,但它可能是可以接受的。

票数 5
EN

Stack Overflow用户

发布于 2011-08-31 12:56:56

正如在前面的回复中所提到的,group-by是最接近不同函数的方法。如果出于某种原因需要更简单的查询,或者需要将表或查询对象用作窗体或报表上的数据源,则可以考虑在包含group-by的AOT中创建视图。然后,您可以使用该视图轻松地连接到查询对象或表单数据源等。

票数 2
EN

Stack Overflow用户

发布于 2011-09-05 00:20:45

Ax2012在视图中支持computed columns,您可以使用SysComputedColumn类构建所需的查询

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7237239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档