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