В моем сценарии мне нужно найти 3 таблицы. Ниже приводится выдержка из таблицы поиска. В одном из них примерно 6 миллионов строк, в двух других — по 500 строк в каждом, и они находятся на отдельных связанных серверах.
LOOKUP_TABLE Invoice_number Дата счета 123 05.05.2013 123A 05.05.2014 123B 05.05.2015
У меня есть номера счетов и даты, поступающие из исходного файла. Например: Исходная строка: - src_invoice: 123 Дата счета-фактуры: 05.05.2015 Мне нужны все строки с номером счета-фактуры, например «123_»
Таким образом, мой запрос переопределения LOOKUP SQL будет выбран * из LOOKUP_TABLE, где invoice_number как src_invoice+'_' ;
Но это дает мне ошибку, так как input_port не может быть заменен в переопределении sql.
Теперь я не хочу использовать некешированный поиск, так как мне нужно искать 3 таких lookup_tables, имеющих 6 миллионов, 500 и 500 строк каждая и на отдельных связанных серверах. Обращение к связанным серверам для поиска каждого исходного номера счета-фактуры трижды заняло бы много времени.
Причина, по которой мне нужно несколько строк, заключается в том, что мне нужны две вещи из таблиц поиска. 1.) Проверьте, является ли src_date = Lookup_table.Invoice_Date, затем пометьте как дубликат 2.) Если src_date != Lookup_table.Invoice_Date, добавьте алфавит к max(invoice_number). Таким образом, новый src_invoice будет 123C.
Любые советы приветствуются. Если вы считаете, что мой подход к этой проблеме неверен, пожалуйста, предоставьте альтернативное решение, которое не требует использования переопределения SQL поиска.
Спасибо