|
Что бы это значило? ошибка при подсчете количества записей в регистре. | ☑ | ||
---|---|---|---|---|
0
Lama12
04.07.22
✎
16:21
|
Есть запрос.
ВЫБРАТЬ СУММА(1) ИЗ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаНаборовГруппДоступа При выполнении возникает ошибка Ошибка при выполнении операции над данными: Microsoft SQL Server Native Client 11.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric. HRESULT=80040E57, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1 |
|||
1
Lama12
04.07.22
✎
16:24
|
Неужели записей в регистре больше чем 1С поддерживает разрядность чисел?
|
|||
2
shuhard
04.07.22
✎
16:26
|
(1) сгруппируй по чему-нибудь - узнаешь
|
|||
3
timurhv
04.07.22
✎
16:29
|
(1) ошибка не 1С, а SQL.
Сумма(Выразить(1 КАК ЧИСЛО(30,0)) |
|||
4
Lama12
04.07.22
✎
16:31
|
(2) (3) Спасибо! Через профайлер посмотрел или как догадался?
|
|||
5
ptiz
04.07.22
✎
16:35
|
(0) Забавно. Максимум 9 999 999 даёт без выкрутасов.
|
|||
6
СеменовСемен
04.07.22
✎
16:41
|
Делай Количество (*)
|
|||
7
timurhv
04.07.22
✎
17:23
|
(4) Профайлер не смотрел, тоже ошибка вываливалась. В части не 1С виновата - неправ, голый запрос SQL SUM(1) отрабатывает, видимо сервер 1С свое отправляет.
|
|||
8
ptiz
04.07.22
✎
17:27
|
(4) В профайлере у меня так по-умолчанию: SELECT CAST(SUM(1.0) AS NUMERIC(15, 8))
|
|||
9
TormozIT
гуру
05.07.22
✎
00:53
|
Да. Баг в MSSQL. Но в платформе 8.3.21 уже сделали его обход https://www.hostedredmine.com/issues/939917
|
|||
10
Конструктор1С
05.07.22
✎
06:05
|
(0) записи таблиц надо считать через КОЛИЧЕСТВО(*), тогда платформа будет пулять
CAST(COUNT_BIG(*) AS NUMERIC(12)) когда пишешь СУММА(1) платформа пуляет CAST(SUM(1.0) AS NUMERIC(7, 0)) т.е. у тебя ограничение в 7 знаков, или до 10 миллионов записей сможет сосчитать |
|||
11
Ненавижу 1С
гуру
05.07.22
✎
07:24
|
(9) на 17 релизе нормально работает. MS SQL Server 12.0.6118.4
|
|||
12
Lama12
05.07.22
✎
09:21
|
(10) Да, спасибо. Уже понял. В таблице было 28 миллионов записей.
|
|||
13
TormozIT
гуру
06.07.22
✎
13:48
|
(11) Так баг в MSSQL. У тебя версия MSSQL без бага. Поэтому любая версия платформы будет работать.
|
|||
14
TormozIT
гуру
06.07.22
✎
14:01
|
(11) У тебя в MSSQL запрос выдает ошибку?
select 1 as w into #tt2 where 1=0 ; SELECT ISNULL(MAX(0.0),1.0) FROM #tt2 T1 WITH(NOLOCK) |
|||
15
ДедМорроз
06.07.22
✎
16:10
|
Это не баг,а значения по умолчанию для суммируемых величин,радуйтесь,что Numeric(1,0) не используется.
|
|||
16
Ненавижу 1С
гуру
06.07.22
✎
16:22
|
(14) да:
|
|||
17
Ненавижу 1С
гуру
06.07.22
✎
16:22
|
(строк обработано: 0)
Сообщение 8115, уровень 16, состояние 8, строка 6 Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric. |
|||
18
TormozIT
гуру
06.07.22
✎
17:02
|
(15) Где прочитать про этот "не баг"?
|
|||
19
1Сергей
06.07.22
✎
17:07
|
(6) +1
Кто придумал считать количество строк через СУММА(1) ? |
|||
20
Волшебник
06.07.22
✎
17:08
|
(19) Извращенцы, которые сами себя наказали
|
|||
21
TormozIT
гуру
06.07.22
✎
17:10
|
(19) Тот кому надо не все строки посчитать, а по условию, причем по нескольким независимо.
|
|||
22
Волшебник
06.07.22
✎
17:11
|
(21) ВЫБРАТЬ Количество(Id) ИЗ Table ГДЕ условие
|
|||
23
TormozIT
гуру
06.07.22
✎
17:17
|
(22) Для одного условия годится. А для нескольких - не очень.
|
|||
24
1Сергей
06.07.22
✎
17:19
|
(23) вот вообще не вижу связи между количеством условий и поведением КОЛИЧЕСТВО(*)
|
|||
25
TormozIT
гуру
06.07.22
✎
17:20
|
Посчитать в скольких строках Реквизит1=2 и посчитать в скольких строках Реквизит2<>3.
|
|||
26
TormozIT
гуру
06.07.22
✎
18:07
|
(14) Так и не понял почему этот запрос выдает ошибку. Няни есть?
|
|||
27
TormozIT
гуру
06.07.22
✎
19:14
|
Разобрались тут https://t.me/OneC_Expert/53693
0.0 и любое дробное 0.х трактуется как нумерик(1,1), к которому преобразовать любое число с общей длиной больше 1 уже нельзя. Соответственно 1.0 и любое 1.х трактуется уже как нумерик(2,1). |
|||
28
СеменовСемен
06.07.22
✎
19:59
|
Странно конечно что сиквел тупо все приводит к типу первой переменной
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |