|  10.04.2003, 17:20 | #1 | 
| Участник |  outer join для трех таблиц 
			
			не идет следующий запрос:  while select itemId, qty from inventTrans join inventLocationId from inventDim where inventTrans.inventDimId == inventDim.InventDimId outer join voucher from inventTransPosting where inventTransPosting.voucher == inventTrans.voucher выдается сообщение "Невозможно выбрать запись в таблице 'Разноска складских проводок' ('InventTransPosting') Использован оператор объединения таблиц join, но выражение where не содержит связи между таблицами" хотя если убрать outer то все нормально. В чем тут дело? Пробовал по всякому ни хрена не работает как только с фразой Outer join связываются более трех таблиц. Может не правильно использую ? | 
|  | 
|  10.04.2003, 17:49 | #2 | 
| NavAx | 
			
			Неправильно используешь. В аксапте join нескольких таблиц идёт последовательно. Т.е. 1 с 2-ой, 2-я с 3-ей. Ну и ещё. "where inventTransPosting.voucher == inventTrans.voucher" Тебе не кажется, что inventTrans.voucher будет всегда пустой?  "while select itemId, qty from inventTrans" 
				__________________ С уважением, Игорь Ласийчук. | 
|  | 
|  10.04.2003, 17:58 | #3 | 
| Участник | спасибо, и еще 
			
			Спасибо, на счет inventTransPosting. Voucher - я знаю - связь не полная (этоя я для примера чтобы не усложнять) но она не пустая.  Тогда у меня еще не большой вопросец, как быть если требуется составить отчет с довольно сложной и большой обработкой (я начинающий программист в Ахсапте), очень не хочется перебирать записи в методе Fetch(), может как-то можно использовать SQL напрямую послав конанды на сервер и вернув выборку, или еще что.... Вообще как поступают в таких случаях? Какова практика построения отчетов которые должны перелопатить большие объемы информации и которые не получается построить используя Query или встроенный SQL? Заранее огромное спасибо!
		 | 
|  | 
|  10.04.2003, 18:11 | #4 | 
| NavAx | 
			
			. Цитата: 
		
			может как-то можно использовать SQL напрямую послав конанды на сервер и вернув выборку, или еще что....
		
	 В сложных отчётах обычно используются временные таблицы. Вначале вызывается класс, который забивает туда данные, ну а потом это дело передаётся в отчёт. Напрямую в отчёте расчёты делать не рекомендуется - в случае трёхзвенной структуры они будут исполнятся на клиенте а не на сервере... В качестве примера можно посмотреть класс PurchInvoiceLauncher_RU 
				__________________ С уважением, Игорь Ласийчук. | 
|  | 
|  29.04.2004, 15:42 | #5 | 
| Участник | Цитата: 
		
			Изначально опубликовано Garic  Неправильно используешь. В аксапте join нескольких таблиц идёт последовательно. Т.е. 1 с 2-ой, 2-я с 3-ей. | 
|  |