|
Arithmetic overflow error | ☑ | ||
---|---|---|---|---|
0
seller7
06.04.16
✎
00:14
|
При расчете себестоимости в УТ, в запросе появляется ошибка:
Microsoft SQL Server Native Client 11.0: Arithmetic overflow error converting numeric to data type numeric Раньше документ проводился без проблем Текст запроса: УНИЧТОЖИТЬ ТаблицаПериодыПартий ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблицаУзлыКорректировки.Организация КАК Организация, ТаблицаУзлыКорректировки.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры, ТаблицаУзлыКорректировки.РазделУчета КАК РазделУчета, ТаблицаУзлыКорректировки.ВидЗапасов КАК ВидЗапасов, ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.КоличествоОстатокНаКонецПериода, 0) + ЕСТЬNULL(ТаблицаОстатков.КоличествоОстаток, 0) КАК Количество, ВЫБОР КОГДА ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.КоличествоОстатокНаКонецПериода, 0) + ЕСТЬNULL(ТаблицаОстатков.КоличествоОстаток, 0) = 0 ТОГДА 0 ИНАЧЕ (ТаблицаУзлыКорректировки.Стоимость * ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.СтоимостьОстаток, 0)) / (ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.КоличествоОстатокНаКонецПериода, 0) + ЕСТЬNULL(ТаблицаОстатков.КоличествоОстаток, 0)) КОНЕЦ КАК Стоимость, ВЫБОР КОГДА ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.КоличествоОстатокНаКонецПериода, 0) + ЕСТЬNULL(ТаблицаОстатков.КоличествоОстаток, 0) = 0 ТОГДА 0 ИНАЧЕ (ТаблицаУзлыКорректировки.СтоимостьБезНДС * ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.СтоимостьБезНДСОстаток, 0)) / (ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.КоличествоОстатокНаКонецПериода, 0) + ЕСТЬNULL(ТаблицаОстатков.КоличествоОстаток, 0)) КОНЕЦ КАК СтоимостьБезНДС, ВЫБОР КОГДА ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.КоличествоОстатокНаКонецПериода, 0) + ЕСТЬNULL(ТаблицаОстатков.КоличествоОстаток, 0) = 0 ТОГДА 0 ИНАЧЕ (ТаблицаУзлыКорректировки.ПостояннаяРазница * ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.ПостояннаяРазницаОстаток, 0)) / (ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.КоличествоОстатокНаКонецПериода, 0) + ЕСТЬNULL(ТаблицаОстатков.КоличествоОстаток, 0)) КОНЕЦ КАК ПостояннаяРазница, ВЫБОР КОГДА ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.КоличествоОстатокНаКонецПериода, 0) + ЕСТЬNULL(ТаблицаОстатков.КоличествоОстаток, 0) = 0 ТОГДА 0 ИНАЧЕ (ТаблицаУзлыКорректировки.ВременнаяРазница * ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.ВременнаяРазницаОстаток, 0)) / (ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.КоличествоОстатокНаКонецПериода, 0) + ЕСТЬNULL(ТаблицаОстатков.КоличествоОстаток, 0)) КОНЕЦ КАК ВременнаяРазница, ВЫБОР КОГДА (ВЫРАЗИТЬ(ТаблицаУзлыКорректировки.Стоимость * ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.СтоимостьОстаток, 0) КАК ЧИСЛО(15, 3))) = 0 ТОГДА 0 ИНАЧЕ ТаблицаУзлыКорректировки.СтоимостьДопРасходы КОНЕЦ КАК СтоимостьДопРасходы, ВЫБОР КОГДА (ВЫРАЗИТЬ(ТаблицаУзлыКорректировки.СтоимостьБезНДС * ТаблицаУзлыКорректировки.Количество - ЕСТЬNULL(ТаблицаОстатков.СтоимостьБезНДСОстаток, 0) КАК ЧИСЛО(15, 3))) = 0 ТОГДА 0 ИНАЧЕ ТаблицаУзлыКорректировки.СтоимостьДопРасходыБезНДС КОНЕЦ КАК СтоимостьДопРасходыБезНДС ИЗ ТаблицаУзлыКорректировки КАК ТаблицаУзлыКорректировки ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОстатков КАК ТаблицаОстатков ПО ТаблицаУзлыКорректировки.АналитикаУчетаНоменклатуры = ТаблицаОстатков.АналитикаУчетаНоменклатуры И ТаблицаУзлыКорректировки.РазделУчета = ТаблицаОстатков.РазделУчета И ТаблицаУзлыКорректировки.ВидЗапасов = ТаблицаОстатков.ВидЗапасов И ТаблицаУзлыКорректировки.Организация = ТаблицаОстатков.Организация Предлагаемое решение не помогло: http://www.gilev.ru/arithmeticoverflow/ Может кто сталкивался? |
|||
1
Тролль главный
06.04.16
✎
00:39
|
непонятно что ТаблицаОстатков
|
|||
2
ВРедная
06.04.16
✎
01:05
|
(0) вы какой именно вариант из статьи пробовали?
С обновлением сервис пака или увеличением разрядов числа при округлении? |
|||
3
seller7
06.04.16
✎
01:22
|
(2) Пробовал добавлять разряды вместо ВЫРАЗИТЬ КАК ЧИСЛО(15, 3) -> ВЫРАЗИТЬ КАК ЧИСЛО(16, 3) и т.п.
|
|||
4
ВРедная
06.04.16
✎
01:59
|
(3) можно попробовать с вариантом (18,3) если до него не дошло.
Но вообще цифр такой разрядности не должно быть при расчете себестоимости. По всей видимости где-то сбоит РАУЗ и гоняет туда-сюда миллиарды. Если возможности проверить на другом (обновленном) сервере нет, попробуйте копать в сторону отрицательных остатков. |
|||
5
seller7
06.04.16
✎
08:43
|
(4) вариант (18,3) не помог
|
|||
6
seller7
06.04.16
✎
10:17
|
up
|
|||
7
Drac0
06.04.16
✎
10:26
|
Выбери в запрос поля, которые участвуют в умножении и делении. И смотри, в каких из них неожиданные данные.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |