Цитата:
Сообщение от
moid
Мне нужно реализовать в аксапте вот такой запрос:
Код:
SELECT * FROM OutlookTaskTable A
INNER JOIN EmplTable B ON A.User = B.EmplId
WHERE A.USER = 'ANV' OR B.HRMORGANIZATIONID = 'IS'
Проблема как добавить условие по OR
Может как-то так извратиться
Код:
qbds = query.addDataSource(tablenum(OutlookTaskTable), "OutlookTaskTableDS");
qbds.fetchMode(QueryFetchMode::One2One);
qbds.relations(false);
qbds2 = qbds.addDataSource(tablenum(EmplTable), "EmplTable1DS");
qbds2.fetchMode(QueryFetchMode::One2One);
qbds2.relations(false);
qbds2.joinMode(JoinMode::OuterJoin);
qbds2.addLink(fieldnum(OutlookTaskTable, User), fieldnum(EmplTable, EmplId));
qbds2.addRange(fieldnum(EmplTable, EmplId)).value("ANV");
qbds1 = qbds.addDataSource(tablenum(EmplTable), "EmplTableDS");
qbds1.fetchMode(QueryFetchMode::One2One);
qbds1.relations(false);
qbds1.joinMode(JoinMode::InnerJoin);
qbds1.addLink(fieldnum(OutlookTaskTable, User), fieldnum(EmplTable, EmplId));
s = strfmt("((%1.EmplId == %2.EmplId) && (%1.RecId == %2.RecId))", qbds1.name(), qbds2.name());
qbds1.addRange(fieldnum(OutlookTaskTable, HRMORGANIZATIONID)).value(s);
qbds1.addRange(fieldnum(OutlookTaskTable, HRMORGANIZATIONID)).value("IS");