Вы были укушены анти-шаблоном под названием implicit join syntax
SELECT * FROM table_with_a_1000rows, othertable_with_a_1000rows
Будет выполнено перекрестное соединение для обеих таблиц, выбрав 1 миллион строк в выходных данных.
Вы выполняете:
FROM md_master trm, cd_med cdt, accounts act, banks bnk
Перекрестное объединение для 4 таблиц (впоследствии объединенное с обычными объединениями) , которое может легко создать много миллиардов строк.
Неудивительно, что Interbase зависает;он работает до конца времени, чтобы генерировать больше строк, чем атомов во вселенной.
Решение
Никогда не используйте ,
после предложения FROM, которое является неявным соединением и является злым.
Используйте только явные объединения, например:
SELECT
trm.seq_no, trm.recipient_id, trm.payee_fullname, trm.payee_address1
, trm.payee_address2, trm.payee_address3, trm.payee_address_city
, trm.payee_address_state, trm.recip_zip, trm.recip_zip_4, trm.recip_zip_4_2
, trm.check_no, trm.check_date, trm.check_amount
, cdt.com_ss_source_sys, cdt.cd_pay_date, cdt.com_set_amount
, bnk.name, bnk.address, bnk.transit_routing
, act.acct_no
FROM md_master trm
join cd_med on cdt.master_id = trm.id
join accounts on act.acct_id = trm.account_tag
join banks on bnk.bank_id = act.bank_id
ORDER BY cdt.master_id