Добрый день.
Подскажите, как можно решить следующую задачу.
В упрощённом варианте выглядит так:
есть 2 таблицы:
таблица Nums - номера
Num
Description
таблица NumGroups - группы номеров
GroupID
Amount
RangeNum - поле служит для связи между таблицами. Здесь задаются критерии, согласно которым группируются номера.
Также на форме пользователь также задаёт произвольный критерий отбора по полю Num с использованием стандартных символов (*, !, .. и т.п.) - UserRangeNum типа Range.
Каким должен быть Query, чтобы найти сумму по всем группам номеров, попадающих под условие, заданное пользователем? Можно ли сделать это одним запросом?
X++:
query q = new Query();
QueryRun qr;
QueryBuildDataSource qbds, qbds1;
NumGroups numGroups;
Range userRangeNum;
;
qbds = q.addDataSource(tablenum(numGroups));
qbds.addSelectionField(fieldnum(numGroups, Amount),SelectionField::Sum);
qbds.orderMode(OrderMode::GroupBy);
qbds1 = qbds.addDataSource(tablenum(nums));
qbds1.fetchMode(0);
qbds1.joinMode(JoinMode::ExistsJoin);
qbds1.addRange(fieldnum(nums, num)).value(userRangeNum);
//как добавить условие объединения таблиц - по полю критерия?
PS AX v 3.0