|
Падает запрос с переполнением при преобразовании numeric к типу данных numeric | ☑ | ||
|---|---|---|---|---|
|
0
Dirk Diggler
21.12.20
✎
18:07
|
В запросе есть вот такая строка:
ВЫБРАТЬ ЕСТЬNULL(СУММА(ЗаказПокупателяТовары.Сумма) - СУММА(ЗаказПокупателяТовары.Количество * ЗаказПокупателяТовары.Коэффициент / ЗаказПокупателяТовары.КоэффициентЕдХр * ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения.Коэффициент / ЗаказПокупателяТовары.КоэффициентЕдХр * КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность), 0) КАК Маржа Падает именно на ней. На одном документе. Убрал агрегирующие функции, разделил на множители |ВЫБРАТЬ | ЗаказПокупателяТовары.Сумма КАК Сумма, | ЗаказПокупателяТовары.Количество * ЗаказПокупателяТовары.Коэффициент / ЗаказПокупателяТовары.КоэффициентЕдХр КАК КолвоЕдХр, | ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения.Коэффициент / ЗаказПокупателяТовары.КоэффициентЕдХр * КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность КАК ЦенаЕдХр, | ЗаказПокупателяТовары.Номенклатура КАК Номенклатура http://joxi.ru/KAx616PCKb48wm Номенклатура ЦенаЕдХр КолвоЕдХр Сумма Шайба d 8,4 zn DIN 125 A (~ ГОСТ 11371-70) 187,129152 0,000333333 0,17 Шайба d10,5 zn DIN 125 A (~ ГОСТ 11371-70) 233,91144 0,46666662 235,2 Шайба d13 DIN 125 A 2,9888684 28 183,12 Неожиданно. Подскажите, как от переполнения избавиться? Не избавляясь от агрегатных функций. |
|||
|
1
novichok79
21.12.20
✎
18:08
|
например, все округлять
ВЫРАЗИТЬ(x как ЧИСЛО(15,6)) тогда на postgres и mssql будут одинаковые результаты расчетов |
|||
|
2
H A D G E H O G s
21.12.20
✎
18:08
|
Выразить()
|
|||
|
3
Dirk Diggler
21.12.20
✎
18:13
|
округлять каждое поле, входящее в строку запроса?
|
|||
|
4
Dirk Diggler
21.12.20
✎
18:13
|
И я думал, такое только если число слишком большое
|
|||
|
5
novichok79
21.12.20
✎
18:14
|
(3) прежде всего то поле, которое может превысить разрядность при вычислениях, а далее по обстоятельствам.
|
|||
|
6
mikecool
21.12.20
✎
19:49
|
использовать подряд сначала умножения все, а затем - деления
|
|||
|
7
ДедМорроз
21.12.20
✎
23:10
|
(6) ну и как бы за разряды вылезти гарантированно,нужно использовать так,чтобы не вылазить ни в большие разряды ни в длинную дробь.
|
| Форум | Правила | Описание | Секции | Поиск |