SQL, выбрасывающий арифметическую ошибку переполнения - PullRequest
0 голосов
/ 09 октября 2018

Я получаю сообщение об ошибке «Ошибка переполнения арифметики при преобразовании выражения в тип данных 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'

1 Ответ

0 голосов
/ 09 октября 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 публикует свой ответ, то примите это.Я не проверял код, так что простите за любые опечатки.

...