|
Ошибка SQL: Переполнение поля => Что это? | ☑ | ||
---|---|---|---|---|
0
patapum
02.02.12
✎
12:48
|
Подскажите, кто встречался с подобной ошибкой! Что она означает? База файловая... УТ 11.0.7.8, доработанная, движок 8.2.15.294.
{ОбщийМодуль.рамМодульСервер.Модуль(119)}: Ошибка при вызове метода контекста (Выполнить) Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); по причине: Ошибка выполнения запроса по причине: Ошибка при выполнении операции над данными: Ошибка SQL: Переполнение поля по причине: Ошибка SQL: Переполнение поля Запрос = Новый Запрос; Запрос.УстановитьПараметр("СписокЗаказов", СписокЗаказов); Запрос.Текст = "ВЫБРАТЬ | ЗаказКлиентаТовары.Ссылка КАК ЗаказКлиента, | ЗаказКлиентаТовары.Номенклатура, | ЗаказКлиентаТовары.Характеристика, | СУММА(ВЫБОР | КОГДА ЗаказКлиентаТовары.Количество = 0 | ТОГДА 0 | ИНАЧЕ (ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеОстаток, 0) + ЕСТЬNULL(СвободныеОстаткиОстатки.рамКПоступлениюОстаток, 0)) * ЗаказКлиентаТовары.Сумма / ЗаказКлиентаТовары.Количество | КОНЕЦ) КАК ЗарезервированоСумма, | ЗаказКлиентаТовары.Количество, | ЗаказКлиентаТовары.Сумма, | ЕСТЬNULL(рамУтверждениеСтрокЗаказовСрезПоследних.СтатусУтверждения, ЗНАЧЕНИЕ(Перечисление.рамСтатусыУтверждения.УтверждениеОтменено)) КАК СтатусУтверждения, | СУММА(ВЫБОР | КОГДА ЗаказКлиентаТовары.Количество = 0 | ТОГДА 0 | ИНАЧЕ ЕСТЬNULL(СвободныеОстаткиОстатки.рамВЗаказеКлиентаОстаток, 0) * ЗаказКлиентаТовары.Сумма / ЗаказКлиентаТовары.Количество | КОНЕЦ) КАК ЗаказаноСумма, | ВЫБОР | КОГДА ЗаказКлиентаТовары.Количество = 0 | ТОГДА 0 | ИНАЧЕ СУММА(ВЫБОР | КОГДА ЗаказКлиентаТовары.Склад = СвободныеОстаткиОстатки.Склад | ТОГДА ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеОстаток, 0) | ИНАЧЕ 0 | КОНЕЦ) * ЗаказКлиентаТовары.Сумма / ЗаказКлиентаТовары.Количество | КОНЕЦ КАК ГотовоСумма |ИЗ | Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.рамУтверждениеСтрокЗаказов.СрезПоследних КАК рамУтверждениеСтрокЗаказовСрезПоследних | ПО ЗаказКлиентаТовары.Ссылка = рамУтверждениеСтрокЗаказовСрезПоследних.ЗаказКлиента | И ЗаказКлиентаТовары.Номенклатура = рамУтверждениеСтрокЗаказовСрезПоследних.Номенклатура | И ЗаказКлиентаТовары.Характеристика = рамУтверждениеСтрокЗаказовСрезПоследних.Характеристика | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(, рамДокументРезерва В (&СписокЗаказов)) КАК СвободныеОстаткиОстатки | ПО (СвободныеОстаткиОстатки.рамДокументРезерва = ЗаказКлиентаТовары.Ссылка) | И (СвободныеОстаткиОстатки.Номенклатура = ЗаказКлиентаТовары.Номенклатура) | И (СвободныеОстаткиОстатки.Характеристика = ЗаказКлиентаТовары.Характеристика) | |СГРУППИРОВАТЬ ПО | ЗаказКлиентаТовары.Количество, | ЗаказКлиентаТовары.Сумма, | ЕСТЬNULL(рамУтверждениеСтрокЗаказовСрезПоследних.СтатусУтверждения, ЗНАЧЕНИЕ(Перечисление.рамСтатусыУтверждения.УтверждениеОтменено)), | ЗаказКлиентаТовары.Ссылка, | ЗаказКлиентаТовары.Номенклатура, | ЗаказКлиентаТовары.Характеристика |ИТОГИ | СУММА(ЗарезервированоСумма), | СУММА(ЗаказаноСумма), | СУММА(ГотовоСумма) |ПО | ЗаказКлиента"; Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); |
|||
1
patapum
02.02.12
✎
13:01
|
ну может кто нить что нить предположит для поддержания дискуссии? )))
|
|||
2
НЕА123
02.02.12
✎
13:07
|
может, действительно переполнилось поле? бывает.
|
|||
3
patapum
02.02.12
✎
13:08
|
(2) а где то поле и чем отчерпывать идей нету?
|
|||
4
Maxus43
02.02.12
✎
13:09
|
числа итоговые большие получаются примерно?
|
|||
5
Maxus43
02.02.12
✎
13:11
|
юзай для всех числовых полей Выразить с четким указанием разрядености, да побольше. SQL в план запроса сам вставляет это, но разрядность выбирает сам исходя из своих соображений, возможно из-за этого
|
|||
6
patapum
02.02.12
✎
13:11
|
а кто ж его знает? запрос то не выполняется. ошибка начала вылетать после исправления соединения с таблицей свободных остатков с внутреннего на левое. до этого все в порядке было
|
|||
7
patapum
02.02.12
✎
13:12
|
(5) спасибо, сейчас попробую
|
|||
8
shuhard
02.02.12
✎
13:15
|
(7) попробуй
ибо зло от ЕстьNULL, лни разрядность рушат http://www.google.ru/search?as_sitesearch=forum.mista.ru&q=%CE%F8%E8%E1%EA%E0+SQL%3A+%CF%E5%F0%E5%EF%EE%EB%ED%E5%ED%E8%E5+%EF%EE%EB%FF+ |
|||
9
patapum
02.02.12
✎
13:17
|
поставил ВЫРАЗИТЬ КАК Число(15,2), не помогло (((
там же в базе если все просуммировать, меньше получится! |
|||
10
Maxus43
02.02.12
✎
13:18
|
(9) на все поля? покаж запрос
|
|||
11
shuhard
02.02.12
✎
13:18
|
(9) не там значит поставил
|
|||
12
patapum
02.02.12
✎
13:19
|
Запрос.Текст = "ВЫБРАТЬ
| ЗаказКлиентаТовары.Ссылка КАК ЗаказКлиента, | ЗаказКлиентаТовары.Номенклатура, | ЗаказКлиентаТовары.Характеристика, | СУММА(ВЫРАЗИТЬ(ВЫБОР | КОГДА ЗаказКлиентаТовары.Количество = 0 | ТОГДА 0 | ИНАЧЕ (ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеОстаток, 0) + ЕСТЬNULL(СвободныеОстаткиОстатки.рамКПоступлениюОстаток, 0)) * ЗаказКлиентаТовары.Сумма / ЗаказКлиентаТовары.Количество | КОНЕЦ КАК ЧИСЛО(15, 2))) КАК ЗарезервированоСумма, | ЗаказКлиентаТовары.Количество, | ЗаказКлиентаТовары.Сумма, | ЕСТЬNULL(рамУтверждениеСтрокЗаказовСрезПоследних.СтатусУтверждения, ЗНАЧЕНИЕ(Перечисление.рамСтатусыУтверждения.УтверждениеОтменено)) КАК СтатусУтверждения, | СУММА(ВЫРАЗИТЬ(ВЫБОР | КОГДА ЗаказКлиентаТовары.Количество = 0 | ТОГДА 0 | ИНАЧЕ ЕСТЬNULL(СвободныеОстаткиОстатки.рамВЗаказеКлиентаОстаток, 0) * ЗаказКлиентаТовары.Сумма / ЗаказКлиентаТовары.Количество | КОНЕЦ КАК ЧИСЛО(15, 2))) КАК ЗаказаноСумма, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ЗаказКлиентаТовары.Количество = 0 | ТОГДА 0 | ИНАЧЕ СУММА(ВЫБОР | КОГДА ЗаказКлиентаТовары.Склад = СвободныеОстаткиОстатки.Склад | ТОГДА ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеОстаток, 0) | ИНАЧЕ 0 | КОНЕЦ) * ЗаказКлиентаТовары.Сумма / ЗаказКлиентаТовары.Количество | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК ГотовоСумма |ИЗ | Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.рамУтверждениеСтрокЗаказов.СрезПоследних КАК рамУтверждениеСтрокЗаказовСрезПоследних | ПО ЗаказКлиентаТовары.Ссылка = рамУтверждениеСтрокЗаказовСрезПоследних.ЗаказКлиента | И ЗаказКлиентаТовары.Номенклатура = рамУтверждениеСтрокЗаказовСрезПоследних.Номенклатура | И ЗаказКлиентаТовары.Характеристика = рамУтверждениеСтрокЗаказовСрезПоследних.Характеристика | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(, рамДокументРезерва В (&СписокЗаказов)) КАК СвободныеОстаткиОстатки | ПО (СвободныеОстаткиОстатки.рамДокументРезерва = ЗаказКлиентаТовары.Ссылка) | И (СвободныеОстаткиОстатки.Номенклатура = ЗаказКлиентаТовары.Номенклатура) | И (СвободныеОстаткиОстатки.Характеристика = ЗаказКлиентаТовары.Характеристика) | |СГРУППИРОВАТЬ ПО | ЗаказКлиентаТовары.Количество, | ЗаказКлиентаТовары.Сумма, | ЕСТЬNULL(рамУтверждениеСтрокЗаказовСрезПоследних.СтатусУтверждения, ЗНАЧЕНИЕ(Перечисление.рамСтатусыУтверждения.УтверждениеОтменено)), | ЗаказКлиентаТовары.Ссылка, | ЗаказКлиентаТовары.Номенклатура, | ЗаказКлиентаТовары.Характеристика |ИТОГИ | СУММА(ЗарезервированоСумма), | СУММА(ЗаказаноСумма), | СУММА(ГотовоСумма) |ПО | ЗаказКлиента"; Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); |
|||
13
shuhard
02.02.12
✎
13:20
|
(0) ты совесть то имей
ЕСТЬNULL(СвободныеОстаткиОстатки.рамКПоступлениюОстаток, 0)* где ты приведение сделал ? |
|||
14
Maxus43
02.02.12
✎
13:21
|
| ВЫРАЗИТЬ(ВЫБОР
| КОГДА ЗаказКлиентаТовары.Количество = 0 | ТОГДА 0 | ИНАЧЕ СУММА(ВЫБОР | КОГДА ЗаказКлиентаТовары.Склад = СвободныеОстаткиОстатки.Склад | ТОГДА ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеОстаток, 0) | ИНАЧЕ 0 | КОНЕЦ) * ЗаказКлиентаТовары.Сумма / ЗаказКлиентаТовары.Количество | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК ГотовоСумма а тут СУММА(.....всё это дело) и выразить на всю её? |
|||
15
patapum
02.02.12
✎
13:21
|
(13) ёпрст!
туплю, бывает. щазззз... |
|||
16
patapum
02.02.12
✎
13:51
|
спасибо, помогло! плюс еще ошибка была, когда было внутреннее соединение, отбор на таблицу остатков работал и на документы. а сделал левое соединение, и поехали всю базу лопатить...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |