Axapta 如何查看X++;选择Ax2012之前的语句?

Axapta 如何查看X++;选择Ax2012之前的语句?,axapta,microsoft-dynamics,x++,Axapta,Microsoft Dynamics,X++,我使用的是Axapta 4.0,我想看看我的x++代码生成了什么SQL语句 如何查看生成的SQL语句 一些背景知识,这样你就可以理解我为什么想看代码了。 我的X++源代码可以编译,但在执行过程中,我收到一条消息,它无法加入表,因为where子句错误(不匹配)。我在AOT中查找了它,它匹配 我读过这篇文章,但它似乎只适用于AX2012,而不适用于Axapta4.0 我有一个重要的声明,它在这里不起作用 select * FROM ltabInventTable join * FRO

我使用的是Axapta 4.0,我想看看我的x++代码生成了什么SQL语句

如何查看生成的SQL语句

一些背景知识,这样你就可以理解我为什么想看代码了。 我的X++源代码可以编译,但在执行过程中,我收到一条消息,它无法加入表,因为where子句错误(不匹配)。我在AOT中查找了它,它匹配

我读过这篇文章,但它似乎只适用于AX2012,而不适用于Axapta4.0

我有一个重要的声明,它在这里不起作用

select *
    FROM ltabInventTable
    join * FROM ltabModelList
        where  ltabModelList.ItemId == ltabInventTable.ItemId
        && ltabModelList.IsAssortment == 0
    join * FROM ltabInventTableModule
        where ltabInventTableModule.ITEMID == ltabInventTable.ITEMID
        && ltabInventTableModule.ModuleType == 1
    join * FROM ltabCharValue
        where ltabCharValue.CHARACTERVALUE == ltabModelList.MODELLCONFIGID
    join * FROM ltabBarcodes
        where ltabBarcodes.ITEMID == ltabInventTable.ITEMID
    join * from ltabInventDim
        where ltabInventDim.INVENTDIMID == ltabBarcodes.InventDimId
    join * FROM ltabConfigTable
        where ltabConfigTable.ITEMID == ltabBarcodes.ITEMID
        && ltabConfigTable.CONFIGID == ltabInventDim.CONFIGID
        && ltabConfigTable.MODELCONFIGID == ltabModelList.MODELLCONFIGID
    outer join ltabPriceDiscItemResult //IN HERE WE HAVE THE PROBLEM
       where ltabPriceDiscItemResult.ITEMID == ltabModelList.ITEMID
        && ltabPriceDiscItemResult.MODELCONFIGID == ltabModelList.MODELLCONFIGID
        && ltabPriceDiscItemResult.SIZEID == ltabModelList.SizeID;
我有一个较小的版本,可以工作

SELECT * FROM ltabModellist //AWESOME THIS WORKS
    outer join ltabPriceDiscItemResult
       where ltabPriceDiscItemResult.ITEMID == ltabModelList.ITEMID
        && ltabPriceDiscItemResult.MODELCONFIGID == ltabModelList.MODELLCONFIGID
        && ltabPriceDiscItemResult.SIZEID == ltabModelList.SizeID;
较小的版本与较大的版本完全相同,但较大的版本会抛出错误

编辑:

请求了错误消息。问题是错误只在德语中出现。 我将提供德语错误信息和谷歌翻译

原件:

结果中的日期(PriceDiscItemResult)kann 没有。在克劳塞尔·基恩所在的地方加入议会 加入塔贝伦

谷歌翻译:

无法删除结果pricemarkdown(PriceDiscItemResult)中的记录 挑选出来的。WHERE子句中的联接不包含 连接表

用于捕获sql语句

下面的博客详细解释了这一点

要了解有关SQL探查器的更多信息,请参阅msdn文章。

在SQL选项卡上AX客户端的用户选项中有一些跟踪设置,允许您在各种输出(文件、表格、信息日志)中记录SQL语句。有关更多信息,请参阅


此外,服务器和客户端的配置实用程序还有一些跟踪选项(有关更多信息,请参阅)。

我不想说显而易见的事情,但必须有人来做。。。您的第一个选择在末尾缺少分号?哦,是的,但在复制和粘贴过程中可能丢失了分号。我尝试了与while select相同的方法,但也不起作用。但是谢谢,如果它只是一个分号,我现在会感到有点尴尬:)。我会修好的above@ian_scho如果它是分号,我也不会感到惊讶。我对Axapta相当陌生完整的错误消息是什么?尝试在其他连接之前移动外部连接(请参阅)。我会说这个答案是正确的,我会给它一个上一票,但你应该提供更多的上下文,因此如果视频或博客被删除,其他用户仍然知道该怎么做。