> Сдаёццо мне, что On Q.TMC_ID+0 = T.ID радикально изменит ситуацию...
Мдя-я-я... Век живи - век учись, дураком помрешь :) SELECT MAX(T.NAME) AS NMTMC, SUM( IIF(Q.PLACE_ID = '1', Q.QUANTITY, 0)) AS QNT000001, SUM( IIF(Q.PLACE_ID = '2', Q.QUANTITY, 0)) AS QNT000002, SUM(Q.QUANTITY) AS QNTNONAL FROM TABL$TMC_QUANT Q INNER JOIN TABL$TMC T ON Q.TMC_ID+0 = T.ID GROUP BY Q.TMC_ID План PLAN JOIN (Q ORDER INDX$TMC_QUANT_TMC_ID, T INDEX (INDX$TMC_ID)) Адаптированный план PLAN JOIN (Q ORDER INDX$TMC_QUANT_TMC_ID, T INDEX (INDX$TMC_ID)) ------ Performance info ------ Prepare time = 16ms Execute time = 62ms Avg fetch time = 2.95 ms Current memory = 1 222 620 Max memory = 1 387 740 Memory buffers = 75 Reads from disk to cache = 157 Writes from cache to disk = 1 Fetches from cache = 73 258 Видать из-за того, что Q.TMC_ID+0 вычисляет и сравнивает с полученным значением, а не со значением из таблицы.

