Имя: Пароль:
1C
 
Ошибка переполнения в запросе
0 Momus
 
19.08.22
10:52
Есть три временные таблицы. В итоговом запросе выражение:
    ПартииМатериалов.МатериальныеУпр
        * НЗППоПродукции.Количество / ВыбытиеСводно.Количество
        * НЗППоПродукции.Числитель
        / НЗППоПродукции.Знаменатель
что соответствует
503500*159/159*3517610/3517610
Числа вроде небольшие, если даже убрать деление из выражения (15 знаков). Запрос "Выбрать 503500*159/159*3517610/3517610" нормально отрабатывает. Что не так?
1 Momus
 
19.08.22
10:56
Ошибка при выполнении операции над данными:
Microsoft SQL Server Native Client 11.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric.
HRESULT=80040E57, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1
2 6awkup_true
 
19.08.22
10:57
а вы уверены, что у вас переполнение именно тут? может у вас в вт супер вложенность "выбор когда выбор когда"? или скуль старый и происходит превышение на 256 таблиц в плане? составные типы приведены?
3 VS-1976
 
19.08.22
10:57
Скорее всего результат впихивается в меньший объем, посмотрите куда данные помещаются
4 VS-1976
 
19.08.22
10:58
Можно самому указать через выразить разрядность
5 Momus
 
19.08.22
11:04
(2) уверен. Я из большого запроса постепенно исключал строки. В конце написал
Выбрать Первые 1
...
ПартииМатериалов.МатериальныеУпр как п1,
НЗППоПродукции.Количество как п2,
ВыбытиеСводно.Количество как п3,
НЗППоПродукции.Числитель как п4,
НЗППоПродукции.Знаменатель как п5
Поместить ВТ;
Выбрать
п1 * п2 / п3 * п4 / п5    ;

Все равно ошибка
6 Momus
 
19.08.22
11:04
(4) Выбрать
Выразить(    п1 * п2 / п3 * п4 / п5        КАК Число(30,2))  ;

Ошибка
7 timurhv
 
19.08.22
11:05
(6) п1...п2 через выразить
8 Momus
 
19.08.22
11:09
(7) так работает. А другой вариант есть? Это типовой отчет фактической себестоимости продукции, не хотелось бы его править
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn