У меня есть 2 таблицы данных счетов, и я пытаюсь использовать одну из них для обновления другой, основываясь на номере заказа.
UPDATE Reconcile
SET Reconcile.Customer = Invoices.Customer,
Reconcile.InvoiceNum = Invoices.InvoiceNumber
FROM Invoices
WHERE Reconcile.PONumber = Invoices.PONum
Достаточно просто. Моя проблема в том, что номера PO не всегда совпадают идеально. У некоторых из них есть да sh. Поэтому вместо FM000112345678 для сопоставления у меня может быть FM0001-12345678 , но мне все равно нужно сопоставить их. Я безуспешно тестировал некоторые запросы SUBSTRING в SELECT.
SELECT * FROM Reconcile AS A
WHERE A.PONumber IN (
SELECT DISTINCT PONum
FROM Invoices AS B
WHERE (B.PONum LIKE (SUBSTRING(A.PONumber,0,5) + '%'))
AND B.PONum LIKE ('%' + SUBSTRING(REVERSE(A.PONumber),0,8)))
Это не возвращает результатов. Я пытался с CHARINDEX.
SELECT * FROM Reconcile AS A
WHERE A.PONumber IN (
SELECT DISTINCT PONum
FROM Invoices AS B
WHERE (B.PONum LIKE (SUBSTRING(A.PONumber,0,5) + '%'))
AND B.PONum LIKE (RIGHT(A.PONumber,CHARINDEX('-',REVERSE(A.PONumber))-1)))
Все еще нет результатов. Я явно что-то упускаю. Любая помощь будет оценена.