Я использую следующий синтаксис:Easy SQL Деление на ноль происходит, когда синтаксис кажется правильным
Case
When acdtime != 0 Then sum(CAST(ti_stafftime as DECIMAL)/acdtime)*100
Else '0'
End as MyPercent,
Но я все еще получаю эту ошибку:
Msg 8134, Level 16, State 1, Line 3 Divide by zero error encountered.
Что я делаю неправильно здесь?
Мой весь запрос ниже:
Select
logid,
row_date,
sum(acdcalls) as 'total calls',
sum(ti_stafftime) as 'total time staffed',
sum(acdtime) as 'time on the phone',
Case
When acdtime != 0 Then sum(CAST(ti_stafftime as DECIMAL)/acdtime)*100
When acdtime = 0 Then '0'
Else '0'
End as MyPercent,
RepLName+', '+RepFName AS Agent,
SupLName+', '+SupFName AS Sup,
MgrLName+', '+MgrFName AS Manager
From CMS_ECH.dbo.dagent dagent
INNER JOIN InfoQuest.dbo.IQ_Employee_Profiles_v3_AvayaId q on dagent.logid = q.AvayaID
Where row_date between getdate()-90 and getdate()-1
And row_date between RepToSup_StartDate and RepToSup_EndDate
And row_date between SupToMgr_StartDate and SupToMgr_EndDate
And row_date between Avaya_StartDate and Avaya_EndDate
And row_date between RepQueue_StartDate and RepQueue_EndDate
And Queue IN ('Pre-Call','Quota','Field Traffic Control','Same Day')
Group By
Queue,
MgrLName+', '+MgrFName,
SupLName+', '+SupFName,
RepLName+', '+RepFName,
logid,
row_date,
acdtime
Я также попытался acdtime> 0 и Я все равно получаю ту же ошибку – CodingIsAwesome
Вы уверены, что ошибка исходит оттуда? Каков весь запрос? Знаете ли вы значение acdtime для строки, где возникает ошибка? Какой тип времени? –
Что делать, если acdtime равно null? –