当我用X ++进行计数时,我遇到了一个非常奇怪的结果,这是我以前从未经历过的。我正在执行我认为是一个非常简单的计数查询,但似乎无法获得所需的结果。
WMSOrderTrans orderTrans;
WMSOrderTrans orderTransChk;
;
select count(RecId) from orderTrans group by shipmentid where orderTrans.inventTransRefId == 'XXXXXX';
info(strFmt('Count is %1', orderTrans.RecId));
while select orderTransChk group by shipmentid where orderTransChk.inventTransRefId == 'XXXXXX' {
info(strFmt('Shipment is %1', orderTransChk.shipmentId));
}
我选择的所有数据集只有1个shippingid,所以我希望第一个选择的计数为1,而不是4(这是该transrefid的行数)。如果我将计数从“ RecId”更改为“ ShipmentId”,那么我将获得实际的shipmentId,而不是计数。我只是希望它返回记录的计数,这就是我认为我已经要求它执行的操作。
我真的看不到我想念的东西。
在while选择中,我得到了我所期望的(shippingid),该循环只有1条信息日志消息。这告诉我带有where子句的group by起作用了,但是并没有解释为什么第一个count select语句的行为不如我期望的那样。
作为参考,这是AX2012 R1系统。
对于可能对知道我的答案感兴趣的任何人,它都与Jeff的回答联系在一起。归根结底,我对数据的查看不够好,查询返回了正确的结果。我最初以为有很多独特的货件,但我错了。我的预期结果是错误的。文件中有4行,但是这些行对于物料(而不是装运)是唯一的。他们都在同一批货上。因此,确实是我自己的错,这表明确实需要仔细查看数据。
感谢所有回应,非常感谢。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句