10.11.2015, 08:45 | #1 |
Участник
|
Запрос на SQL Server
Код: SELECT w.* FROM dbo.WMSLOCATION w WHERE w.INVENTLOCATIONID = N'ЦС_Акб' AND NOT EXISTS(SELECT d.INVENTDIMID FROM dbo.INVENTDIM d INNER JOIN dbo.INVENTSUM i ON (i.INVENTDIMID = d.INVENTDIMID) AND (i.CLOSED = 0) AND (i.CLOSEDQTY = 0) WHERE d.INVENTLOCATIONID = w.INVENTLOCATIONID AND d.WMSLOCATIONID = w.WMSLOCATIONID ); не получается на Axapta-e Код: void init() { Query q; QueryBuildDataSource qbds; // <Talgat 10/11/2015 10:43> // QueryBuildDataSource qbdsDim, qbdsSum; // </Talgat> super(); q = new Query(); qbds = q.addDataSource(tablenum(WMSLocation)); // <Talgat 09/11/2015 10:54> qbds = qbds.addDataSource(tablenum(InventDim)); //qbds = qbds.addDataSource(tableNum(InventSum)); //qbds.addRange(fieldNum(InventSum, Closed)).value("0"); //qbds.addRange(fieldNum(InventSum, ClosedQty)).value("0"); qbds.relations(true); qbds.joinMode(JoinMode::NoExistsJoin); // </Talgat> qbds.addSortField(fieldnum(WMSLocation,InventLocationId)); qbds.addSortField(fieldnum(WMSLocation,wmsLocationId)); this.query(q); } |
|
10.11.2015, 08:53 | #2 |
Участник
|
почему же не получается...
насколько я вижу в аксапте вы недоопределили условий. и надо смотреть какие именно условия поставил метод relation(true) мой совет - не создавайте query в коде. а создайте в AOT. там проконтролируйте какие relations и какие условия накладываются а в коде просто сделайте Код: Query q = new Query(querystr(myAotQueryName)); SysQuery::findOrCreateRange(q.datasourcetable(....), fieldnum(....)).value(....); и следующие программисты скажут вам спасибо. |
|
10.11.2015, 09:17 | #3 |
Участник
|
Цитата:
Сообщение от mazzy
почему же не получается...
насколько я вижу в аксапте вы недоопределили условий. и надо смотреть какие именно условия поставил метод relation(true) мой совет - не создавайте query в коде. а создайте в AOT. там проконтролируйте какие relations и какие условия накладываются а в коде просто сделайте Код: Query q = new Query(querystr(myAotQueryName)); SysQuery::findOrCreateRange(q.datasourcetable(....), fieldnum(....)).value(....); и следующие программисты скажут вам спасибо. |
|
10.11.2015, 12:33 | #4 |
Участник
|
Все-таки пришлось создать Query в АОТ, работает нормально, спасибо за советы!
|
|