|
![]() |
#1 |
Участник
|
Кхм...попробовал, у меня на трешке не выдает дублей никаких, и даже без changed()
X++: qbDSItem = query.addDataSource(tableNum(InventTable)); qbDSItem.addSortField(fieldNum(InventTable, ItemId)); qbDSItem.orderMode(OrderMode::GroupBy); qbDSItem.addSelectionField(fieldNum(InventTable, ItemId)); //добавляю таблицу InventTrans qbDS = qbDSItem.addDataSource(tableNum(InventTrans)); qbDS.joinMode(JoinMode::OuterJoin); qbDS.addLink(fieldNum(InventTable, ItemId), fieldNum(InventTrans, ItemId)); qbDS.addSortField(fieldNum(InventTrans, ItemId)); qbDS.orderMode(OrderMode::GroupBy); //вывожу результат queryRun = new QueryRun(query); while (queryRun.next()) { inventTable = queryRun.get(tableNum(InventTable)); inventTrans = queryRun.get(tableNum(InventTrans)); //if (queryRun.changed(tablenum(InventTable))) info( strfmt( "%1 %2", inventTable.ItemId, inventTrans.ItemId)); } Последний раз редактировалось coolibin; 04.12.2008 в 16:09. |
|
![]() |
#2 |
Участник
|
Прошу прощения.. В моем коде был еще один Inner Join перед Outer, когда я его убрал, дубли исчезли.
Хех. В связи с этим возник вопрос.. Как с этим бороться, ибо Inner Join мне нужен. Модель датасорса выглядит так: qbDSItem по InventTable qbDSChild по InventItemGroup связь с Inner Join qbDSItem по полю InventGroupId qbDS по InventTrans связь с Outer Join qbDSItem по полю ItemId Может, я неправильно строю соединения? Последний раз редактировалось Silphidae; 04.12.2008 в 16:23. |
|
Теги |
join, outer join, query |
|
![]() |
||||
Тема | Ответов | |||
Несколько outer join в запросе | 2 | |||
Данные в Grid из таблиц, связанных по Outer Join | 2 | |||
2 и более OUTER JOIN к одному паренту | 21 | |||
Outer Join | 3 | |||
outer join для трех таблиц | 4 |
|