Предложение Like не возвращает все результаты - только целые числа - PullRequest
0 голосов
/ 08 мая 2020

При внесении пометок в информацию о клиенте можно сделать ссылку на счет. Я пытаюсь получить отчет, в котором счет-фактура сочетается с соответствующими примечаниями.

Некоторое время я боролся, так как два столбца используют 2 разных типа данных (Varchar и Text). В итоге я решил использовать приведение, чтобы изменить тип данных и импортировать их во временную таблицу. Теперь, когда я работаю с тем же типом данных, VarChar, я подумал, что это должно быть проще. Это утверждение, которое я использовал для создания временной таблицы.

select c.clientid, c.searchname, cast(nom.ref as varchar(150)) as Ref,
n.CreatedDate, s.name as 'Note Creator', nt.NoteTypeName, n.RecordID, 
cast(n.note as varchar(150)) as note
into #ARNotes
from tblnotes n
join tblclient c on c.clientid=n.RecordID
join tblstaff s on s.staffid=n.CreatedByID
join tblNoteTypes nt on nt.NoteTypeID=n.NoteTypeID
join tblNominal nom on nom.ClientID=c.ClientID
where n.Note is not null

Все примечания отображаются в моей временной таблице несколько правильно .. Это все еще необработанные данные, которым нужен magi c где X как предложение Y .

Таким образом, образец данных в моей новой временной таблице, #ARNotes, будет выглядеть примерно так:

Invoice Number              Notes 
1234                        1234 Here is an example
A111                        Another Example A111
B222                        Note Example B222
9876                        Note Example 9876
5432                        No bill referenced
CCCC                        No bill referenced

Я использую оператор select, аналогичный приведенному ниже, для запроса .. В моем последнем заявлении будет немного больше logi c, так что он будет извлекать только те счета, которые были просрочены.

select *
from #ARNotes
where note like ('%'+ref+'%')
order by CreatedDate desc

Проблема только в том, что тянет только там, где в счете есть только номер. Если номер счета-фактуры буквенно-цифровой, он не отображается. Поэтому, если бы моя таблица использовала мои образцы данных, она бы вытащила только эти результаты ниже. Таким образом, примечания, относящиеся к A111 и B222, не учитываются.

Invoice Number              Notes 
1234                        1234 Here is an example
9876                        Note Example 9876

Что мне не хватает, чтобы извлечь все значения? Или это вообще возможно?

1 Ответ

1 голос
/ 08 мая 2020

После дальнейшего просмотра я обнаружил, что данные с номером счета-фактуры имеют конечные пробелы. Те, которые были только целыми числами, были импортированы из нашей старой системы, и им не был присвоен новый номер ссылки / счета в новой системе. Я изменил свой импорт во временную таблицу на

select c.clientid, c.searchname, **rTRIM(CAST(nom.ref AS varchar(150))) AS Ref,**,
n.CreatedDate, s.name as 'Note Creator', nt.NoteTypeName, n.RecordID, 
cast(n.note as varchar(150)) as note
into #ARNotes
from tblnotes n
join tblclient c on c.clientid=n.RecordID
join tblstaff s on s.staffid=n.CreatedByID
join tblNoteTypes nt on nt.NoteTypeID=n.NoteTypeID
join tblNominal nom on nom.ClientID=c.ClientID
where n.Note is not null
...