|   |   | 
| 
 | Почему не работает функция Выразить( .... как строка(3)) в запросе для числ.знач | ☑ | ||
|---|---|---|---|---|
| 0
    
        AlexandrV 17.12.15✎ 10:56 | 
        Почему не правильно работает функция Выразить( .... как строка(3)) в запросе для числового значения
 Выдает пустую строку Если поставить Представить() то получаю значение, но негде его в группировке использовать не могу и не могу взять из него часть строки Как получить из числового параметра в запросе строку нужной длинны, так что бы его дальше можно было использовать? | |||
| 1
    
        ДенисЧ 17.12.15✎ 10:58 | 
        В запросе - никак.     | |||
| 2
    
        GROOVY 17.12.15✎ 10:58 | 
        Никак.     | |||
| 3
    
        itlikbez 17.12.15✎ 11:01 | 
        (0) В принципе - можно, но это будет изврат редкостный.
 Используешь остаток от деления и ПОДСТРОКА(). | |||
| 4
    
        PCcomCat 17.12.15✎ 11:02 | 
        Хорошо подумай, зачем тебе именно так. Соглашусь с мнением большинства, что подобного рода требования - это ошибка проектирования. Попробуй найти другой вариант, учитывая, что первый вариант не реализуем - он точно есть.     | |||
| 5
    
        AlexandrV 17.12.15✎ 11:09 | 
        (4) сам запрос довольно большой и если не удастся получить этот кусок строки (его дальше надо сравнивать с другими строками и потом объединять, если не удастся придется переписывать весь алгоритм в модуль)     | |||
| 6
    
        AlexandrV 17.12.15✎ 11:10 | 
        (0) единственный метод я сам вижу это выгрузить все в таблицу в программе обработать и потом в запрос по новой забросить     | |||
| 7
    
        PCcomCat 17.12.15✎ 11:12 | 
        (5) Иногда проще переписать кусок запроса, чем вставлять костыли.     | |||
| 8
    
        Посмотрим 17.12.15✎ 11:14 | 
        Заполнить всевозможные числовые значения (если они конечны) в ТЗ (колонка1,колонка2 - 3,14,"3,14") и засунуть в запрос, ну и левым к ТЗ     | |||
| 9
    
        PCcomCat 17.12.15✎ 11:15 | 
        А для чего нужно число в строку, если не секрет?     | |||
| 10
    
        itlikbez 17.12.15✎ 11:34 | 
        Для трехзначных чисел будет работать что-то типа:
 
 | |||
| 11
    
        mikecool 17.12.15✎ 11:38 | 
        а что такое Представить() в языке запросов?     | |||
| 12
    
        mikecool 17.12.15✎ 11:38 | 
        +11 не нашел в списке функций     | |||
| 13
    
        GROOVY 17.12.15✎ 11:39 | 
        (11)  Ты даже не Представляешь()
 Думаю ТС ошибся с Представление() | |||
| 14
    
        mikecool 17.12.15✎ 11:40 | 
        (13) я уж подумал - может это 8.3.7 на лыжах дошла )     | |||
| 15
    
        Ildarovich 17.12.15✎ 12:43 | 
        (0) Если очень хочется, то можно!
 Вот статья: Выразить число как строку и дату как строку в запросе http://catalog.mista.ru/public/331805/ . Для трехзначного числа выражение будет не слишком сложным: ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, &Число * 0.06)) / 6 + 1, 1)
 | |||
| 16
    
        AlexandrV 17.12.15✎ 12:50 | 
        (15) число может быть трехзначным, а этот вариант работает только для числа     | |||
| 17
    
        AlexandrV 17.12.15✎ 12:51 | 
        (16)+ только для одной цифры     | |||
| 18
    
        itlikbez 17.12.15✎ 13:06 | 
        (17) Для любого трехзначного числа работает.     | |||
| 19
    
        AlexandrV 17.12.15✎ 14:03 | 
        Все реализовал 
 ВЫБРАТЬ ВложенныйЗапрос.Объект, МАКСИМУМ(ВложенныйЗапрос.Значение) КАК Значение ИЗ (ВЫБРАТЬ ВложенныйЗапрос1.Объект КАК Объект, ПОДСТРОКА("0123456789", ВложенныйЗапрос1.ПерваяЦифра + 1, 1) + ПОДСТРОКА("0123456789", ВложенныйЗапрос1.ВтораяЦифра + 1, 1) + ПОДСТРОКА("0123456789", ВложенныйЗапрос1.ТретьяЦифра + 1, 1) КАК Значение ИЗ (ВЫБРАТЬ ВложенныйЗапрос.Объект КАК Объект, ВЫРАЗИТЬ(ВложенныйЗапрос.Значение / 100 КАК ЧИСЛО(1, 0)) КАК ПерваяЦифра, (ВЫРАЗИТЬ(ВложенныйЗапрос.Значение / 10 КАК ЧИСЛО(2, 0))) - (ВЫРАЗИТЬ(ВложенныйЗапрос.Значение / 100 КАК ЧИСЛО(1, 0))) * 10 КАК ВтораяЦифра, ВложенныйЗапрос.Значение - (ВЫРАЗИТЬ(ВложенныйЗапрос.Значение / 10 КАК ЧИСЛО(2, 0))) * 10 КАК ТретьяЦифра, ВложенныйЗапрос.Значение КАК Значение ИЗ (ВЫБРАТЬ ЗначенияСвойствОбъектов.Объект КАК Объект, ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Значение КАК ЧИСЛО(3, 0)) КАК Значение ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ГДЕ ЗначенияСвойствОбъектов.Свойство.Код = "Оф086 ") КАК ВложенныйЗапрос) КАК ВложенныйЗапрос1) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Объект | |||
| 20
    
        itlikbez 17.12.15✎ 14:07 | 
        (19) У тебя остаток от деления считается неправильно. Ты не учел, что ВЫРАЗИТЬ() округляет по правилам округления, а не отбрасывает дробную часть.     | |||
| 21
    
        itlikbez 17.12.15✎ 14:08 | 
        +(20) Вариант из (15) лучше.     | |||
| 22
    
        AlexandrV 17.12.15✎ 14:09 | 
        (20) в системе настраивается как округлять     | |||
| 23
    
        itlikbez 17.12.15✎ 14:12 | 
        (22) Каким образом?     | |||
| 24
    
        AlexandrV 17.12.15✎ 14:28 | 
        (23) поправил запрос
 ВЫБРАТЬ ВложенныйЗапрос.Объект, МАКСИМУМ(ВложенныйЗапрос.Значение) КАК Значение ИЗ (ВЫБРАТЬ ВложенныйЗапрос1.Объект КАК Объект, ПОДСТРОКА("0123456789", ВложенныйЗапрос1.ПерваяЦифра + 1, 1) + ПОДСТРОКА("0123456789", ВложенныйЗапрос1.ВтораяЦифра + 1, 1) + ПОДСТРОКА("0123456789", ВложенныйЗапрос1.ТретьяЦифра + 1, 1) КАК Значение ИЗ (ВЫБРАТЬ ВложенныйЗапрос.Объект КАК Объект, ВЫРАЗИТЬ(ВложенныйЗапрос.Значение / 100 - 0.5 КАК ЧИСЛО(1, 0)) КАК ПерваяЦифра, (ВЫРАЗИТЬ(ВложенныйЗапрос.Значение / 10 - 0.5 КАК ЧИСЛО(2, 0))) - (ВЫРАЗИТЬ(ВложенныйЗапрос.Значение / 100 - 0.5 КАК ЧИСЛО(1, 0))) * 10 КАК ВтораяЦифра, ВложенныйЗапрос.Значение - (ВЫРАЗИТЬ(ВложенныйЗапрос.Значение / 10 - 0.5 КАК ЧИСЛО(2, 0))) * 10 КАК ТретьяЦифра, ВложенныйЗапрос.Значение КАК Значение ИЗ (ВЫБРАТЬ ЗначенияСвойствОбъектов.Объект КАК Объект, ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Значение КАК ЧИСЛО(3, 0)) КАК Значение ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ГДЕ ЗначенияСвойствОбъектов.Свойство.Код = "Оф086 ") КАК ВложенныйЗапрос) КАК ВложенныйЗапрос1) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Объект | |||
| 25
    
        itlikbez 17.12.15✎ 14:59 | 
        (24) Должно работать.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |