|
Поиск документа запросом по части номера. |
☑ |
0
demONx6
14.02.19
✎
10:33
|
Здравствуйте. Суть в следующем.
Есть таблица значений (ТЗ), имеющая столбцы:
Номер (тип Строка)
Дата (тип Дата)
Номера в ТЗ имеют формат "12345". (Номера в базе имеют формат "Д-000012345".)
Длина номера в ТЗ может быть от 1 до 5 символов.
Как запросом можно найти документы с перечисленными номерами и датами?
На данный момент дошел до этого запроса:
"ВЫБРАТЬ
| ВЫРАЗИТЬ(ТЗ.Номер КАК СТРОКА(5)) КАК Номер,
| ТЗ.Дата КАК Дата
|ПОМЕСТИТЬ ТЗ
|ИЗ
| &ТЗ КАК ТЗ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка,
| ВЫРАЗИТЬ(РеализацияТоваровУслуг.Номер КАК СТРОКА(11)) КАК Номер1,
| НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) КАК Дата1
|ПОМЕСТИТЬ Реализации
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Реализации.Ссылка,
| ТЗ.Номер,
| ТЗ.Дата
|ИЗ
| ТЗ КАК ТЗ
| ЛЕВОЕ СОЕДИНЕНИЕ Реализации КАК Реализации
| ПО (Реализации.Номер1 ПОДОБНО ""%"" + ТЗ.Номер)
| И ТЗ.Дата = Реализации.Дата1";
Но в данном случае находит только те документы, у которых номера в ТЗ имеют длину 5 символов.
Меньшие уже не находит.
Решить задачу нужно без циклов, только запросом.
|
|
1
ДенисЧ
14.02.19
✎
10:34
|
где номер подобно "%12345"
|
|
2
demONx6
14.02.19
✎
10:38
|
Это условие есть в связях таблиц.
|
|
3
СвинТуз
14.02.19
✎
10:45
|
(0)
Добавить колонку в таблицу значений и заполнить религия не позволяет?
Потом в запросе сравниваем на равенство.
|
|
4
demONx6
14.02.19
✎
10:47
|
(3) Префиксы могут быть разные.
|
|
5
СвинТуз
14.02.19
✎
10:49
|
(4)
"%" с обеих сторон не пробовал ставить?
Читай инструкцию
|
|
6
demONx6
14.02.19
✎
10:51
|
(5) В ТЗ указана последняя часть номера. Поэтому % только перед ставится.
|
|
7
ZDenis
14.02.19
✎
10:51
|
(2) Насколько я понимаю после этого
ВЫРАЗИТЬ(ТЗ.Номер КАК СТРОКА(5))
будут пробелы у того, где меньше 5 и соответственно он уже не найдет, а если попробовать без ВЫРАЗИТЬ?
|
|
8
demONx6
14.02.19
✎
10:53
|
(7) Тогда ошибка
Неверные параметры "+"
ПО (Реализации.Номер1 ПОДОБНО "%" + <<?>>ТЗ.Номер)
|
|
9
demONx6
14.02.19
✎
10:55
|
Собственно из-за этой ошибки и решил "выражать"
|
|
10
СвинТуз
14.02.19
✎
10:58
|
(9)
Добавь нули справа.
|
|
11
demONx6
15.02.19
✎
04:46
|
Добавил слева. Помогло. Спасибо.
|
|