|   |   | 
| 
 | Деление на ноль в SQL | ☑ | ||
|---|---|---|---|---|
| 0
    
        Guzey 12.04.16✎ 11:33 | 
        Добрый день Коллеги. Столкнулся с проблемой, ошибка деления на ноль. Вроде все просто, но начал ковырять и наткнулся на странную проблему. Имеем вот такой запрос:
 ВЫБРАТЬ СпрУпаковки.Ссылка КАК Ссылка, СпрУпаковки.Числитель / СпрУпаковки.Знаменатель КАК Коэффициент ИЗ Справочник.Номенклатура КАК СпрНоменклатура ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК СпрУпаковки ПО (СпрУпаковки.Владелец = ВЫБОР КОГДА СпрНоменклатура.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры) ТОГДА СпрНоменклатура.Ссылка КОГДА СпрНоменклатура.НаборУпаковок <> ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ПустаяСсылка) ТОГДА СпрНоменклатура.НаборУпаковок ИНАЧЕ ЛОЖЬ КОНЕЦ) ГДЕ СпрНоменклатура.Ссылка = &Номенклатура И НЕ СпрУпаковки.ПометкаУдаления УПОРЯДОЧИТЬ ПО Ссылка ИЕРАРХИЯ При делении запрос выдает ошибку деления на ноль в SQL базе. Эта же база в файловой ошибку не возвращает. Если в sql базе не делить, а просто вывести отдельно знаменатель и числитель, то они не равны нулю. Если из запроса убрать внутреннее соединение, ошибка не возникает. Кто с таким сталкивался, как такое решать? | |||
| 1
    
        shuhard 12.04.16✎ 11:35 | 
        (0) поймай запрос профайлером и позырь     | |||
| 2
    
        Тролль главный 12.04.16✎ 11:37 | ||||
| 3
    
        ssalikoff 12.04.16✎ 11:38 | 
        (0) Для знатоков MSSQL. Ошибка возникает только в серверном режиме.
 В этой ветке всё гораздо подробней описано Но решения пока никто не предложил Интересно, что проблема как минимум три недели существует с момента выхода релиза 11.2.3.108 но сообщение о проблеме были на мисте опубликовано почти одновременно | |||
| 4
    
        Тролль главный 12.04.16✎ 11:39 | 
        (3) вот это
 ВЫБОР КОГДА НЕ СпрУпаковки.ЭтоГруппа ТОГДА СпрУпаковки.Числитель / СпрУпаковки.Знаменатель КОНЕЦ не помогло? | |||
| 5
    
        ssalikoff 12.04.16✎ 11:42 | 
        (4) Нет, СправочникУпаковки там иерархия элементов
 нет там никаких групп | |||
| 6
    
        Карупян 12.04.16✎ 11:44 | 
        КОГДА ЕСТЬNULL(СпрУпаковки.Знаменатель, 0) = 0 ТОГДА ...     | |||
| 7
    
        ssalikoff 12.04.16✎ 11:46 | 
        (6) Вообще вопрос не как обойти проблему — это совсем несложно. Вопрос в другом - почему?
 То есть наблюдается явление противоречащее здравому смыслу, а объяснения нет. | |||
| 8
    
        Карупян 12.04.16✎ 11:49 | 
        если ты хочешь понять почему, то лови профайлером     | |||
| 9
    
        НЕА123 12.04.16✎ 12:10 | 
        (0)
 странный, очень странный запрос. | |||
| 10
    
        Guzey 12.04.16✎ 12:53 | 
        (1) Поймал, деление 1 на 1
 (2) Оп! И правда дежавю, пошел изучать (6) Не катит, проверял, там точно число, нет ни нуля, не NULL`а. Результат запроса в консоле Числитель = 1, Знаменатель = 1. (9) Запрос из типовой конфигурации, так что комментировать странность не буду. Пока меня смущает то что, в соединении оба условия возвращают истину, убираю любое из условий проблема не возникает. Кстати проверил на постргре, ошибки нету. Похоже скуль не корректно интерпретирует условие в соединении. | |||
| 11
    
        Тролль главный 12.04.16✎ 12:56 | 
        (10) не скуль, а 1С скармливает скулю криво     | |||
| 12
    
        Guzey 12.04.16✎ 12:57 | 
        Проблема еще решается кстати если упорядочивать без ИЕРАРХИИ, но поведение все таки странное. Буду писать на хот лайн 1с-ников, проблема все таки похоже платформенная.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |