15.09.2014, 14:14 | #1 |
Участник
|
Ошибка в запросе - Почему не работает??
Добрый день! Не получается написать правильно запрос - не понимаю почему вылазит ошибка. Подскажите пожалуйста?
Цитата:
select FirstOnly InventNonConformanceTable
join VendTrans join InventDimInventTrans join InventDimNonconformance join InventTrans join VendInvoiceTrans join vendInvoiceJour where inventNonConformanceTable.InventTransIdRef == InventTrans.InventTransId && inventDimNonConformance.inventDimId == inventNonConformanceTable.InventDimId && inventDimNonConformance.inventBatchId == inventDimInventTrans.inventBatchId && inventDimNonConformance.inventBatchId == inventTrans.inventDim().inventBatchId && inventTrans.InventTransId == vendInvoiceTrans.InventTransId && inventTrans.InvoiceId == vendInvoiceTrans.InvoiceId && vendInvoiceTrans.PurchID == vendInvoiceJour.PurchId && vendInvoiceTrans.InvoiceDate == vendInvoiceJour.InvoiceDate && vendInvoiceTrans.InvoiceId == vendInvoiceJour.InvoiceId && vendInvoiceTrans.numberSequenceGroup == vendInvoiceJour.numberSequenceGroup && vendInvoiceJour.LedgerVoucher == vendTrans.Voucher && vendInvoiceJour.InvoiceDate == vendTrans.TransDate && vendInvoiceJour.InvoiceAccount == vendTrans.AccountNum && vendTrans.RecId == this.RefRecId; Тогда как вот такой вариант вполне себе исполняется: Цитата:
select inventNonConformanceTable
join inventDimNonConformance where inventNonConformanceTable.InventTransIdRef == inventTrans.InventTransId && inventDimNonConformance.inventDimId == inventNonConformanceTable.InventDimId && inventDimNonConformance.inventBatchId == inventTrans.inventDim().inventBatchId; |
|
15.09.2014, 14:29 | #2 |
Участник
|
Нельзя использовать методы в запросах таким образом
Вместо inventTrans.inventDim() вам прийдеться приджоинить inventDim отдельно, а потом использовать поля из этой таблици далее. Приведенный пример работает "на ура" т.к. inventTrans не участвует в джоинах, а уже выбран. "Неработающий" же код АХ конвертирует в SQL и вот с вашим методом возникает небольшая проблема. Последний раз редактировалось skuull; 15.09.2014 в 14:34. |
|
15.09.2014, 14:31 | #3 |
Участник
|
Потому что InventTrans у вас участвует в запросе, а функцию можно вызвать только к конкретному курсору. Приджойните InventDim в запросе к InventTrans и сравнивайте уже с полем inventDim.inventBatchId.
|
|
15.09.2014, 15:00 | #4 |
Участник
|
Спасибо большое люди добрые! Вы мне очень помогли! Очень благодарен - все теперь стало ясно!
|
|