【发布时间】:2016-11-25 03:01:11
【问题描述】:
我正在使用 Axapta 4.0,想看看我的 x++ 代码生成了什么 SQL 语句。
如何查看生成的 SQL 语句?
一些背景知识,所以您可能会理解我为什么要查看代码。 我的 X++ 源代码可以编译,但在执行过程中我收到消息,它无法加入表,因为 where 子句错误(不匹配)。我在 AOT 中查找它并匹配。
我读过这个how-to-see-the-sql-expression-of-an-x-select-statement,但它似乎只适用于 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;
较小的版本与较大的版本完全一样,但较大的版本会引发错误。
编辑:
请求了错误消息。问题是错误只有德语。 我将提供德语错误消息和它的谷歌翻译。
原文:
Resultat Preisabschrift (PriceDiscItemResult) kann 中的 Ein Datensatz nicht ausgewählt werden。 Der Join enthält in der WHERE-Klausel keine Verknüpfung zwischen den Join-Tabellen。
谷歌翻译:
结果 pricemarkdown (PriceDiscItemResult) 中的记录不能 选择。 WHERE 子句中的连接不包含 连接表。
【问题讨论】:
-
我不想说显而易见的事情,但有人必须这样做...您的第一个选择最后缺少分号?
-
哦,是的,但是在复制和粘贴过程中可能会丢失。我尝试了与 while select 相同的方法,但这也不起作用。但是谢谢,如果它只是一个分号,我现在会感到有点尴尬:)。我会在上面修复它
-
@ian_scho 如果它是一个分号,我不会感到惊讶。我对 axapta 还很陌生
-
完整的错误信息是什么?
-
尝试在其他连接之前移动外连接(参见Error message when using outer join for a form data source)
标签: axapta microsoft-dynamics x++