|
|
#3 |
|
Участник
|
Добрался до 2009 аксапты, в ней действительно можно получить требуемый результат, но только через Query (проверено на MS SQL). К сожалению, в четвёрке не работает, видимо из-за отсутствия поддержки "разветвлённых" запросов, когда к главному датасорсу цепляется несколько вложенных.
X++: Query q;
QueryBuildDatasource qbds, qbdsNE;
QueryRun qr;
;
q = new Query();
qbds = q.addDataSource(tablenum(Table5), 'Table5');
qbdsNE = qbds.addDataSource(tablenum(Table6));
qbdsNE.joinMode(JoinMode::NoExistsJoin);
qbdsNE.addLink(fieldnum(Table5, Table6Id), fieldnum(Table6, Id), 'Table5');
qbdsNE = qbds.addDataSource(tablenum(Table7));
qbdsNE.joinMode(JoinMode::NoExistsJoin);
qbdsNE.addLink(fieldnum(Table5, Table7Id), fieldnum(Table7, Id), 'Table5');
qr = new QueryRun(q);
qr.next();X++: SELECT A.ID,A.TABLE6ID,A.TABLE7ID,A.RECVERSION,A.RECID FROM TABLE5 A WHERE (A.DATAAREAID='DAT') AND NOT EXISTS (SELECT 'x' FROM TABLE6 B WHERE ((B.DATAAREAID='DAT') AND (A.TABLE6ID=B.ID))) AND NOT EXISTS (SELECT 'x' FROM TABLE7 C WHERE ((C.DATAAREAID='DAT') AND (A.TABLE7ID=C.ID))) ORDER BY A.DATAAREAID,A.RECID |
|
|