У меня возникает очень странный результат, когда я делаю подсчет в X ++, чего я раньше не испытывал. Я выполняю то, что, как я думал, был действительно просто счетным запросом, но я не могу получить результат, который я получил.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 shipmentid, поэтому первый выбор я ожидал счетчик 1, а я получаю 4 (что, сколько строк для этого transrefid существуют). Если я изменю счет от «RecId» до «ShipmentId», то вместо счета, я получаю фактическую отгрузку. Я просто хочу, чтобы он возвращал количество записей, что, как я считаю, я попросил.
Я действительно не вижу, что мне не хватает.
В то время как выберите, я получаю то, что ожидаю (отгрузка), только 1 сообщение infolog для цикла. Это говорит мне, что группа с предложением where работает, но не объясняет, почему первый оператор выбора count не ведет себя так, как я ожидал.
Для справки, это система AX2012 R1.
Надеюсь, вы решили это уже, но если нет, то ваш общий запрос (группа) будет искать, сколько записей имеет установленный inventTransRefId, и сколько из них передают идентификатор доставки (даже если его только один идентификатор доставки). Если вы знаете, что у вас есть 4 записи для одного inventTransRefId, как вы думаете, что они собираются, когда вы группируете их под идентификатором ShipmentID?Ваш запрос просто не настроен для подсчета количества идентификаторов доставки, но вместо этого, сколько recID (полные строки, поскольку они всегда уникальны) совместно используют inventTransRefId. –
Спасибо Джеффу за то, что он указал на мой очевидный недостаток. Я знал, что, должно быть, было что-то простое, что я пропустил (не всегда так). Это настоящий момент «удар по моей голове». Я ожидал 4 разных идентификатора доставки, но это было не так. Было 4 разных предмета по одному идентификатору доставки, поэтому «группа по отгрузке» была законно консолидирована. Не могу поверить, что я пропустил это, так просто и очевидно, но я был слеп. Данные никогда не лежат, и я просто не выглядел достаточно близко. – Rat