Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не работает операция like в запросе  [new]
seg856
Member

Откуда:
Сообщений: 261
Запрос такой:

select t.tapid, isnull(m.family,'') as family, isnull(m.name,'') as name, isnull(m.ot,'') ot, convert(date, isnull(m.date_bd, '01.01.1901')) as date_db, isnull(se.servicemedicalcode,'') as scode,
substring(rtrim(ltrim(isnull(se.ServiceMedicalName,''))),1,250) as sName, isnull(mkb.ds, '') as ds, substring(ltrim(rtrim(isnull(d.DepartmentName,''))),1,30) as DName, isnull(do.FAM_V, '') as fam_v, convert(date, isnull(s.DATE_P,'01.01.1901')) as date_p, substring(isnull(p.NAME,''),1,3) as profit
from r_hlt_TAP as t
inner join r_hlt_SMTAP as s on s.rf_TAPID=t.tapid
inner join r_hlt_mkab as m on m.MKABID=t.rf_MKABID
inner join r_oms_department as d on d.DepartmentId=s.rf_DepartmentID
left join r_hlt_LPUDoctor as do on do.LPUDoctorID=s.rf_LPUDoctorID
inner join r_oms_servicemedical as se on se.servicemedicalId=s.rf_omsservicemedicalId
left join r_oms_kl_ProfitType as p on p.kl_ProfitTypeID=t.rf_kl_ProfitTypeID
left join r_oms_mkb as mkb on mkb.mkbid=s.rf_MKBID
where ((convert (date, s.DATE_P)>@d2 or convert(date,s.date_p)<convert(date,@PrevDate)) and convert(date,t.DateClose)>=@d1 and convert(date,t.DateClose)<=@d2)
and se.servicemedicalname like 'D%'
and t.IsClosed=1


Не выдает ничего

А Запрос в таком виде выдает много строчек, где se.servicemedicalname начинается именно на символ D
select t.tapid, isnull(m.family,'') as family, isnull(m.name,'') as name, isnull(m.ot,'') ot, convert(date, isnull(m.date_bd, '01.01.1901')) as date_db, isnull(se.servicemedicalcode,'') as scode,
substring(rtrim(ltrim(isnull(se.ServiceMedicalName,''))),1,250) as sName, isnull(mkb.ds, '') as ds, substring(ltrim(rtrim(isnull(d.DepartmentName,''))),1,30) as DName, isnull(do.FAM_V, '') as fam_v, convert(date, isnull(s.DATE_P,'01.01.1901')) as date_p, substring(isnull(p.NAME,''),1,3) as profit
from r_hlt_TAP as t
inner join r_hlt_SMTAP as s on s.rf_TAPID=t.tapid
inner join r_hlt_mkab as m on m.MKABID=t.rf_MKABID
inner join r_oms_department as d on d.DepartmentId=s.rf_DepartmentID
left join r_hlt_LPUDoctor as do on do.LPUDoctorID=s.rf_LPUDoctorID
inner join r_oms_servicemedical as se on se.servicemedicalId=s.rf_omsservicemedicalId
left join r_oms_kl_ProfitType as p on p.kl_ProfitTypeID=t.rf_kl_ProfitTypeID
left join r_oms_mkb as mkb on mkb.mkbid=s.rf_MKBID
where ((convert (date, s.DATE_P)>@d2 or convert(date,s.date_p)<convert(date,@PrevDate)) and convert(date,t.DateClose)>=@d1 and convert(date,t.DateClose)<=@d2)
and se.servicemedicalname like '%'
and t.IsClosed=1


Где искать причину?
31 июл 18, 10:58    [21617016]     Ответить | Цитировать Сообщить модератору
 Re: Не работает операция like в запросе  [new]
CrazHunt
Member

Откуда:
Сообщений: 40
seg856,

вот так попробуйте
and se.servicemedicalname like '%D%'


Если что-то выведется, то значит перед D что-то есть

И отформатируйте код по правилам - глаза сломать можно
31 июл 18, 11:17    [21617078]     Ответить | Цитировать Сообщить модератору
 Re: Не работает операция like в запросе  [new]
seg856
Member

Откуда:
Сообщений: 261
CrazHunt, '%D%' тоже не выдает строки.
'%90%' тоже не выдает строки.
31 июл 18, 11:53    [21617223]     Ответить | Цитировать Сообщить модератору
 Re: Не работает операция like в запросе  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
какого типа ваше поле servicemedicalname в таблице?
31 июл 18, 11:54    [21617233]     Ответить | Цитировать Сообщить модератору
 Re: Не работает операция like в запросе  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
seg856
Где искать причину?


А таки попробуйте кошерное
and se.servicemedicalname like N'D%'
31 июл 18, 12:04    [21617300]     Ответить | Цитировать Сообщить модератору
 Re: Не работает операция like в запросе  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2300
seg856,

попробуй тупо
select se.* from r_oms_servicemedical as se where se.servicemedicalname like 'D%'
31 июл 18, 12:05    [21617309]     Ответить | Цитировать Сообщить модератору
 Re: Не работает операция like в запросе  [new]
seg856
Member

Откуда:
Сообщений: 261
Konst_One, varchar(500)
31 июл 18, 12:48    [21617586]     Ответить | Цитировать Сообщить модератору
 Re: Не работает операция like в запросе  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
и в итоге окажется, что там О а не D.... какой collation?
31 июл 18, 12:51    [21617607]     Ответить | Цитировать Сообщить модератору
 Re: Не работает операция like в запросе  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36697
'%d%'?
31 июл 18, 12:52    [21617608]     Ответить | Цитировать Сообщить модератору
 Re: Не работает операция like в запросе  [new]
seg856
Member

Откуда:
Сообщений: 261
Просто перепутал поля: нужно ServicemedicalCode вместо ServicemedicalName
31 июл 18, 13:24    [21617775]     Ответить | Цитировать Сообщить модератору
 Re: Не работает операция like в запросе  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
seg856
Просто перепутал поля: нужно ServicemedicalCode вместо ServicemedicalName

И только на третий день индеец по прозвищу Зоркий глаз заметил...
31 июл 18, 13:45    [21617874]     Ответить | Цитировать Сообщить модератору
 Re: Не работает операция like в запросе  [new]
seg856
Member

Откуда:
Сообщений: 261
Близорукий глаз
31 июл 18, 13:53    [21617923]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить