Я получаю ошибку «Ошибка арифметического переполнения при преобразовании выражения в тип данных int» при запуске простой агрегатной функции (см. Код ниже). Когда я уменьшаю диапазон дат, я вижу, что результаты на самом деле превышают ограничение типа данных INT ... Я пробовал преобразовать все выражение в BIGINT без успеха. Кто-нибудь знает, как я могу решить эту проблему?
Все 3 этих запроса вызывают одну и ту же вышеупомянутую ошибку:
Select (SUM(ACDTalkTimeInSec) + SUM(TotAcwTimeInSec) + SUM(HoldTimeInSec)) as AHT
From ColTelephony.dbo.vwACDSkillCombined acd
Where WorkDte between '1/2/2018' AND '10/5/2018'
Select CAST(Cast(SUM(ACDTalkTimeInSec) AS BIGINT) + CAST(SUM(TotAcwTimeInSec) AS BIGINT) + CAST(SUM(HoldTimeInSec) AS BIGINT) AS BIGINT) as AHT
From ColTelephony.dbo.vwACDSkillCombined acd
Where WorkDte between '1/2/2018' AND '10/5/2018'
Select Cast(((SUM(ACDTalkTimeInSec) + SUM(TotAcwTimeInSec) + SUM(HoldTimeInSec))) AS BIGINT) as AHT
From ColTelephony.dbo.vwACDSkillCombined acd
Where WorkDte between '1/2/2018' AND '10/5/2018'
Благодарить! Сработало отлично! Ненавижу, когда ответ такой простой, лол. Отправьте, пожалуйста, ответ, и я отмечу его как таковой. Спасибо еще раз!





SMor ответил на это в комментариях, но вот sql:
Select SUM(CAST(ACDTalkTimeInSec AS BIGINT)) + SUM(CAST(TotAcwTimeInSec AS BIGINT))
+ SUM(CAST(HoldTimeInSec AS BIGINT)) as AHT
From ColTelephony.dbo.vwACDSkillCombined acd
Where WorkDte between '1/2/2018' AND '10/5/2018'
Если SMor отправит свой ответ, примите его. Я не тестировал код, так что извините за опечатки.
Я искал ту же проблему. Спасибо @Michael
Разыгрывать нужно до суммирования, а не после.