Имя: Пароль:
1C
 
Ошибка арифметического переполнения при преобразовании numeric к типу данных num
,
0 olo_lo1
 
16.08.16
14:37
Microsoft SQL Server Native Client 10.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric.
HRESULT=80040E57, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1

Подскажите пож что делать.
Пишу простой запрос в момент формирования вылетает ошибка


ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Склад,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК Поле1,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК Поле2,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК Поле3,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК Поле4,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК Поле5
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , , , ) КАК ТоварыНаСкладахОстаткиИОбороты
1 Горогуля
 
16.08.16
14:38
гуглить
2 piter3
 
16.08.16
14:39
проще надо быть и не пихать в запрос все и вся
3 PR
 
16.08.16
14:40
(2) А что такого в этом запросе?
4 olo_lo1
 
16.08.16
14:42
(1) гуглил, через выразить нихера не работает такая же ошибка
(3) присоединяюсь к вопросу
5 PR
 
16.08.16
14:43
Вообще, я так понимаю, проверять деление на ноль уже не модно?
6 olo_lo1
 
16.08.16
14:43
(5) Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric
7 olo_lo1
 
16.08.16
14:44
(5) деление на 0 это другая ошибка, я был бы счастлив ее увидеть
8 Mauser
 
16.08.16
14:46
Подели и умножь
9 piter3
 
16.08.16
14:49
(3)слишком много длинных преобразований.Вариант решения выразить как число 15,2.
Или же все эти операции в выборке сделать
10 piter3
 
16.08.16
14:49
(5) погоди может и вылезит
11 olo_lo1
 
16.08.16
15:00
Переделал, результат тот же

ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Склад,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры,
    ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК ЧИСЛО(15, 3)) КАК Поле1,
    ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК ЧИСЛО(15, 3)) КАК Поле2,
    ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК ЧИСЛО(15, 3)) КАК Поле3,
    ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК ЧИСЛО(15, 3)) КАК Поле4,
    ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход * ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК ЧИСЛО(15, 3)) КАК Поле5
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , , , ) КАК ТоварыНаСкладахОстаткиИОбороты
12 olo_lo1
 
16.08.16
15:06
хрень конечно странная но получилось вот так
если кто может подсказать природу ошибки буду блогодарен

ВЫРАЗИТЬ(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток * (ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК ЧИСЛО(15, 5))
13 piter3
 
16.08.16
15:07
(12) У тебя вместо 3 знаков после запятой 5
14 PR
 
16.08.16
15:08
(12) Только хотел предложить так сделать.
Попробуй выведи три поля по отдельности, напиши, что получилось.
15 olo_lo1
 
16.08.16
15:18
да вывел все 4 поля, не ругается, херня какая то
16 PR
 
16.08.16
15:20
(15) Что херня?
Что получилось-то, какие значения?
17 Mauser
 
16.08.16
15:25
(15) Порядок действий, родной.
У тебя в исходном коде сначала умножалось, потом делилось. При умножении и было переполнение. Сейчас ты сначала делишь, потом умножаешь.
Про это в (8) и говорилось
18 olo_lo1
 
16.08.16
15:28
(17) спасибо, теперь ясно