Показать сообщение отдельно
Старый 21.03.2007, 14:25   #2  
Ed1k is offline
Ed1k
Участник
 
102 / 42 (2) +++
Регистрация: 19.07.2006
Цитата:
Сообщение от 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");