2015-12-04 81 views
0

我需要更改此查詢,以便它能夠按天分配給每位代理的總呼叫數。按代理分解總計,然後按天

目前我有它的工作一天,但我想看看我是否可以使用相同的查詢抓住一週的每一天。

下面是它目前正在返回:

extension Agent MondayTotalCalls 
237   Agent 1  62 
275   Agent 2  63 
233   Agent 3  58 
272   Agent 4  65 
245   Agent 5  61 
236   Agent 6  2 
239   Agent 7  45 

這是我目前使用的查詢:

select 
    u.extension 
    ,u.firstname + ' ' + u.lastname as Agent 
    ,count(s.notablecallid) as MondayTotalCalls 
from ##session s 
inner join ##callsummary cs on cs.notablecallid = s.notablecallid 
inner join ##mxuser u on u.extensionid = s.extensionid2 
inner join ##acdgroup g on s.serviceextension2 = g.extension 
where g.extension in ('700', '702') 
and s.creationtimestamp between @monday_start_datetime and @monday_end_datetime 
group by u.firstname, u.lastname, u.extension 

我已經建在查詢中可能會有所幫助的其他變量。

我每天兩個變量starttimeendtime(週一至週五) 我有一個daterange對於特定周需要@converted_start_datetime@converted_end_datetime

數據的整個daterange放入每個表##session##callsummary等。

對於每個代理人,我需要一週中每天的總計。

+0

你能爲我們提供的樣本數據。你已經給出了輸出,但不是樣本數據 – sam

回答

0

我認爲datename(weekday, creationtimestamp)聚集會做你想要什麼:

select datename(weekday, creationtimestamp) as dow, u.extension 
     u.firstname + ' ' + u.lastname as Agent, 
     count(s.notablecallid) as MondayTotalCalls 
from ##session s inner join 
    ##callsummary cs 
    on cs.notablecallid = s.notablecallid inner join 
    ##mxuser u 
    on u.extensionid = s.extensionid2 inner join 
    ##acdgroup g 
    on s.serviceextension2 = g.extension 
where g.extension in ('700', '702') @monday_end_datetime 
group by datename(weekday, creationtimestamp), u.firstname, u.lastname, u.extension 
order by min(creationtimestamp); 
+0

我試過這種方法,它讓我思考有點不同。如果沒有更多的格式,我不能使用這個確切的方法。 UTC日期延續到第二天。但是我會玩這個,我喜歡它的功能。 –