TableOne: LNAME FNAME FILETYPE
Smith John A
Jones Mary B
Brown James B
TableTwo: NAME FILETYPE
Mary Smith 1
Smith, Mary Jane 2
Brown, James 3
Хитрый, чтобы объяснить.
У меня есть две таблицы (не огромные - несколько тысяч записей).Соответствующие поля находятся в примере выше.То, что мне нужно вытащить, было бы алгоритмически:
SELECT
TableOne.LName, TableOne.FName, TableOne.FileType, TableTwo.Name
WHERE
(TableTwo.Name LIKE *LName* AND TableTwo.name LIKE *FName*)
AND
(IF TableOne FileType = 'A' THEN
TableTwo.FileType = '1'
ELSE IF TableOne FileType = 'B' THEN
TableTwo.FileType = '2' OR TableTwo.FileType = '3'
)
Очевидно, что это не решение, а просто неуклюжий тип psuedocode.Я не опубликовал ни одной из моих попыток за последние пару часов, потому что они даже близко не подошли (они включали временные таблицы и подзапросы).
Я знаю, что это никогда не приведет кбыть на 100% точным - в этом поле ИМЯ слишком много опечаток, чтобы начать с него - мне просто нужно найти отправную точку на основе записей, где есть разумный шанс, что в TableTwo нет записи, совпадающей с TableOne.
Я испытываю желание сдаться и просто выполнить работу на Python (я хотел бы подумать, что мог бы сделать это за то время, которое требуется, чтобы напечатать это), но я хотел бы посмотреть, может ли этобыть сделано в SQL