12.05.2005, 17:54 | #1 |
Участник
|
Тип Criterias
Пишу запрос:
qbds_LedgerTrans = query.addDataSource(tableNum(LedgerTrans)); qbds_ReportRowTable = qbds_LedgerTrans.addDataSource(tableNum(ReportRowTable)); qbds_ReportRowTable.addLink(fieldNum(LedgerTrans, AccountNum), fieldNum(ReportRowTable, Criterias)); //!!! ReportRowTable - это такая самодельная табличка, в которой есть поле Criterias с типом Criterias, в котором хранятся маски счетов. Нужно получить запрос вида: SELECT * FROM LedgerTrans JOIN * FROM ReportRowTable WHERE LedgerTrans.AccountNum like ReportRowTable.Criterias а получается: SELECT * FROM LedgerTrans JOIN * FROM ReportRowTable WHERE LedgerTrans.AccountNum = ReportRowTable.Criterias Что делать? |
|
13.05.2005, 00:53 | #2 |
Administrator
|
Боюсь, что тут уже ничем не поможешь ... Аксапта все же не SQL (жаль конечно). Решение - только вручную - т.е. в цикле перебирать все записи
|
|
13.05.2005, 11:24 | #3 |
Участник
|
А корректна ли конструкция вида:
while select ledgerTrans join reportRowTable where ledgerTrans.AccountNum like reportRowTable.Criterias ? |
|
13.05.2005, 12:52 | #4 |
Administrator
|
хм... конкретно - надо пробовать. Формально, код туда заходит (написал тестовый job). Предлагаю накидать job, и убедиться
|
|
16.05.2005, 11:49 | #5 |
Участник
|
В результате решение получилось такое:
не связывать таблички, а создать qbds_LedgerTrans, добавить range на счет и в цикле по ReportRowTable параметризовывать этот range значением ReportRowTable.Criterias и получать нужную выборку. Тогда в зависимости от того, есть ли * или ? в маске, условие будет like или ==. По like связывать не хочет... пока что |
|