|
Помогите как правильно писать условие в тексте запроса ! | ☑ | ||
---|---|---|---|---|
0
p1C
17.11.11
✎
20:51
|
Делаю запрос по бланкам вида: QW500, QW678, QW4300 .... Мне надо выбрать бланки например после QW4000.
РегистрНакопления.Бланк>=&НачНомер не катит - в результате запроса попадает и бланки :QW500,QW578. (ну в принципе и логично). Как мне правильно поставить условие чтобы выбрать бланки у которых номер больше 4000? |
|||
1
Нуф-Нуф
17.11.11
✎
21:10
|
через подстроку выдели числа и приведи к числу
|
|||
2
Buster007
17.11.11
✎
21:11
|
(1) Можно строку привести в число в запросе? оО что-то никогда не получалось.
(0) можно попробовать ограничить по длине строке и + твоё условие РегистрНакопления.Бланк>=&НачНомер... осталось узнать как длину строки получить в запросе... ) |
|||
3
Vakhrin
17.11.11
✎
21:22
|
фиг его знает... может и сработает ))
ВЫБОР КОГДА ПОДСТРОКА(РегистрНакопления.Бланк, 1, 6) = ПОДСТРОКА(РегистрНакопления.Бланк + "яяяяяяяяяяяя", 1, 6) И РегистрНакопления.Бланк >= &НачНомер ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ |
|||
4
Vakhrin
17.11.11
✎
21:23
|
к (3) это в ГДЕ вставить )
|
|||
5
p1C
17.11.11
✎
21:48
|
ПОДСТРОКА(РегистрНакопления.Бланк, 3, 6) это тоже формат текста, так он и сравнение делает под текста. А выразить(ПОДСТРОКА(РегистрНакопления.Бланк, 3, 6) как Число(10)) не хочет !
|
|||
6
Vakhrin
17.11.11
✎
21:50
|
ты попробовал?
|
|||
7
Total Commander
17.11.11
✎
21:51
|
(5) И не захочет, ВЫРАЗИТЬ только для составных полей
|
|||
8
Total Commander
17.11.11
✎
21:51
|
(6) Ты документацию читал?
|
|||
9
shuhard
17.11.11
✎
21:54
|
(0) вырежи из бланка одну цифру и проверь Like
на 4 5 6 7 8 9 |
|||
10
Vakhrin
17.11.11
✎
22:35
|
(8) читал... давно когда-то
(0) как я и сказал в (3) - работает ВЫБРАТЬ Подзапрос.Бланк ПОМЕСТИТЬ ВремТаб ИЗ (ВЫБРАТЬ "QW500" КАК Бланк ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "QW678" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "QW4300") КАК Подзапрос ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВремТаб.Бланк ИЗ ВремТаб КАК ВремТаб ГДЕ ВЫБОР КОГДА ПОДСТРОКА(ВремТаб.Бланк, 1, 6) = ПОДСТРОКА(ВремТаб.Бланк + "яяяяяяяяяяяя", 1, 6) И ВремТаб.Бланк >= "QW4000" ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ |
|||
11
andrewks
17.11.11
✎
22:40
|
подобно
|
|||
12
Vakhrin
17.11.11
✎
22:41
|
(11) что и чему подобно?
|
|||
13
andrewks
17.11.11
✎
22:46
|
QW[4-9][0-9][0-9][0-9] (если нумерация не превышает 9999)
а вообще, разрядность номеров бланков обычно фиксируют. это избавляют сразу от большой кучи потенциальных проблем |
|||
14
Vakhrin
17.11.11
✎
22:53
|
(13) а как это в запросе будет выглядеть? а если нумерация таки превышает такую разрядность?
|
|||
15
rs_trade
17.11.11
✎
22:54
|
(13) че то я тоже не понял как это с сабжем связано. пример в студию.
|
|||
16
andrewks
17.11.11
✎
23:00
|
where
(РегистрНакопления.Бланк like "QW[4-9][0-9][0-9][0-9]") |
|||
17
Vakhrin
17.11.11
✎
23:05
|
(16) прикольно... работает(!) )) не думал, что в 1С такое будет работать... а все же с разрядностью что делать?
|
|||
18
rs_trade
17.11.11
✎
23:10
|
(16) ну да. в случае из сабжа будет конечно работать. но все равно не очень то универсально. если расшрить задачу вопрешся.
|
|||
19
Vakhrin
17.11.11
✎
23:11
|
кроме так:
ГДЕ ВремТаб.Бланк ПОДОБНО "QW[4-9][0-9][0-9][0-9]%" другого придумать не могу... |
|||
20
andrewks
17.11.11
✎
23:12
|
(18) вот об этом я и говорю в (13)
самое главное - продумать заранее структуру данных, чтобы не иметь геморроя, и не писать тяжеловесные и долгоиграющие запросы |
|||
21
andrewks
17.11.11
✎
23:32
|
кстати, на DB2 не пашет. как всегда, не доработали
конструкция [] вообще не пашет, как надо |
|||
22
hhhh
18.11.11
✎
00:15
|
как-то так можно
ВЫБОР КОГДА ПОДСТРОКА(РегистрНакопления.Бланк, 3, 1) >= "4" И ПОДСТРОКА(РегистрНакопления.Бланк, 3, 1) <= "9" И ПОДСТРОКА(РегистрНакопления.Бланк, 4, 1) >= "0" И ПОДСТРОКА(РегистрНакопления.Бланк, 4, 1) <= "9" И ПОДСТРОКА(РегистрНакопления.Бланк, 5, 1) >= "0" И ПОДСТРОКА(РегистрНакопления.Бланк, 5, 1) <= "9" И ПОДСТРОКА(РегистрНакопления.Бланк, 6, 1) >= "0" И ПОДСТРОКА(РегистрНакопления.Бланк, 6, 1) <= "9" ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |