12.01.2011, 09:53 | #1 |
Участник
|
Объединение таблиц по Range-полю одной из них
Добрый день.
Подскажите, как можно решить следующую задачу. В упрощённом варианте выглядит так: есть 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); //как добавить условие объединения таблиц - по полю критерия? |
|