Цитата:
Сообщение от
Raduga
Такой вариант подошел бы, если в этом поле всегда был только один критерий, но в плохом случае там можно указать сложный критерий: Код1,Код5* и т.п.
и это можно сделать, только чуть сложнее. Как я уже писал пришлось бы добавлять ещё одну таблицу, для хранения критериев не "через запятую" а какждый в своей строчке.
Цитата:
Сообщение от
Raduga
И еще я все-таки хочу получить этот запрос через query, а не через select.
Всё что можно сделать через select - можно сделать и через query.
Цитата:
Сообщение от
Raduga
А насчет вложенных запросов можно поподробней, как их можно сделать через query, ни разу их не писала.
Я имел в виду что возможно не стоит пытаться обойти все строки LedgerJournalTrans за один раз, а пройтись по каждому выбранному BankAccountTable и отрабатывать каждый конкретный критерий по отдельности.
X++:
query = new Query();
qbds = query.addDataSource(tablenum(BankAccountTable));
queryLedgerJournalTrans = new Query();
qbds = LedgerJournalTrans.addDataSource(tablenum(LedgerJournalTrans));
qbrOffsetAccoun = qbds.addRange(fieldNum(LedgerJournalTrans, OffsetAccount));
qbrBudgetDim = qbds.addRange(fieldNum(LedgerJournalTrans, BudgetDim));
queryRun = new queryRun(query);
while (queryRun.next())
{
BankAccountTable = queryRun.get(tablenum(BankAccountTable));
qbrOffsetAccoun.value(queryvalue(BankAccountTable.AccountId));
qbrBudgetDim.value(BankAccountTable.BudgetDimId);
queryRunLedgerJournalTrans = new queryRun(queryLedgerJournalTrans);
while (queryRunLedgerJournalTrans.next())
{
LedgerJournalTrans = queryRun.get(tablenum(LedgerJournalTrans));
...
}
}