1

我正在尝试在过去一年中的每一天运行此查询。有没有办法自动化这个过程并取回MaxAgentsLoggedIn每天的清单?

提前致谢

select top 1 
     dIntervalStart IntervalStart, count(cName) MaxAgentsLoggedIn
from IAgentQueueStats
where cReportGroup = '*'
   and cHKey3 = '*'
   and cHKey4 = '*'
   and tAgentLoggedIn > 0
   and dIntervalStart >= '2013-09-24 00:00:00'
   and dIntervalStart <= '2013-09-24 23:59:59'
group by 
   nDuration, dIntervalStart
order by 
   MaxAgentsLoggedIn desc;

定义

      [cName] [nvarchar](50) NOT NULL,
   [cReportGroup] [nvarchar](50) NOT NULL,
[cHKey3] [nvarchar](50) NULL,
[cHKey4] [nvarchar](50) NULL,
[cType] [char](1) NOT NULL,
[dIntervalStart] [datetime] NOT NULL,
[nDuration] [int] NOT NULL,
[nEnteredAcd] [int] NOT NULL,
[nAbandonedAcd] [int] NOT NULL,
[nGrabbedAcd] [int] NOT NULL,
[nLocalDisconnectAcd] [int] NOT NULL,
[nAlertedAcd] [int] NOT NULL,
[nAnsweredAcd] [int] NOT NULL,
[nAnswered] [int] NOT NULL,
[nAcdSvcLvl] [int] NOT NULL,
[nAnsweredAcdSvcLvl1] [int] NOT NULL,
[nAnsweredAcdSvcLvl2] [int] NOT NULL,
[nAnsweredAcdSvcLvl3] [int] NOT NULL,
[nAnsweredAcdSvcLvl4] [int] NOT NULL,
[nAnsweredAcdSvcLvl5] [int] NOT NULL,
[nAnsweredAcdSvcLvl6] [int] NOT NULL,
[nAbandonAcdSvcLvl1] [int] NOT NULL,
[nAbandonAcdSvcLvl2] [int] NOT NULL,
[nAbandonAcdSvcLvl3] [int] NOT NULL,
[nAbandonAcdSvcLvl4] [int] NOT NULL,
[nAbandonAcdSvcLvl5] [int] NOT NULL,
[nAbandonAcdSvcLvl6] [int] NOT NULL,
[tGrabbedAcd] [int] NOT NULL,
[tAnsweredAcd] [int] NOT NULL,
[mtAnsweredAcd] [int] NOT NULL,
[tAbandonedAcd] [int] NOT NULL,
[tTalkAcd] [int] NOT NULL,
[tTalkCompleteAcd] [int] NOT NULL,
[nHoldAcd] [int] NOT NULL,
[tHoldAcd] [int] NOT NULL,
[nAcw] [int] NOT NULL,
[tAcw] [int] NOT NULL,
[tAcwComplete] [int] NOT NULL,
[nExternToInternCalls] [int] NOT NULL,
[nExternToInternAcdCalls] [int] NOT NULL,
[nInternToExternCalls] [int] NOT NULL,
[nInternToExternAcdCalls] [int] NOT NULL,
[nInternToInternCalls] [int] NOT NULL,
[nInternToInternAcdCalls] [int] NOT NULL,
[tExternToInternCalls] [int] NOT NULL,
[tExternToInternAcdCalls] [int] NOT NULL,
[tInternToExternCalls] [int] NOT NULL,
[tInternToExternAcdCalls] [int] NOT NULL,
[tInternToInternCalls] [int] NOT NULL,
[tInternToInternAcdCalls] [int] NOT NULL,
[nAcwCalls] [int] NOT NULL,
[tAcwCalls] [int] NOT NULL,
 [nTransferedAcd] [int] NOT NULL,
[nNotAnsweredAcd] [int] NOT NULL,
[tAlertedAcd] [int] NOT NULL,
[nFlowOutAcd] [int] NOT NULL,
[tFlowOutAcd] [int] NOT NULL,
[nStartWaitAlertAcdCalls] [int] NOT NULL,
[nStartActiveAcdCalls] [int] NOT NULL,
[nStartHeldAcdCalls] [int] NOT NULL,
[nEndWaitAlertAcdCalls] [int] NOT NULL,
[nEndActiveAcdCalls] [int] NOT NULL,
[nEndHeldAcdCalls] [int] NOT NULL,
[nTransferWithinAcdCalls] [int] NOT NULL,
[nTransferOutAcdCalls] [int] NOT NULL,
[nDisconnectAcd] [int] NOT NULL,
[tAgentLoggedIn] [int] NOT NULL,
[tAgentAvailable] [int] NOT NULL,
[tAgentTalk] [int] NOT NULL,
[tAgentOtherBusy] [int] NOT NULL,
[tAgentOnAcdCall] [int] NOT NULL,
[tAgentOnOtherAcdCall] [int] NOT NULL,
[tAgentInAcw] [int] NOT NULL,
[tAgentOnNonAcdCall] [int] NOT NULL,
[tAgentDnd] [int] NOT NULL,
[tAgentNotAvailable] [int] NOT NULL,
[tAgentAcdLoggedIn] [int] NOT NULL,
[tAgentStatusDnd] [int] NOT NULL,
[tAgentStatusAcw] [int] NOT NULL,
[tAgentLoggedInDiluted] [int] NOT NULL,
[tStatusGroupFollowup] [int] NOT NULL,
[tStatusGroupBreak] [int] NOT NULL,
[tStatusGroupTraining] [int] NOT NULL,
[CustomValue1] [int] NOT NULL,
[CustomValue2] [int] NOT NULL,
[CustomValue3] [int] NOT NULL,
[CustomValue4] [int] NOT NULL,
[CustomValue5] [int] NOT NULL,
[CustomValue6] [int] NOT NULL,
[I3TimeStampGMT] [datetime] NOT NULL,
[SiteId] [smallint] NOT NULL,
[SubSiteId] [smallint] NOT NULL,
[nLocalDisconnectAgentAlertAcd] [int] NULL,
[nLocalDisconnectAgentAcd] [int] NULL,
[tAgentAcdLoggedIn2] [int] NULL
4

1 回答 1

0

Rather than iterating the query by day, can you include the day in the query and then group by the day?

Question 113045 has an answer that shows how to pull just the date from the date time using

convert(date, dIntervalStart)

If you add this date to your query, you can then query the max(AgentsLoggedIn) from the result and get a list by day.

select theDay, max(AgentsLoggedIn) MaxAgentsLoggedIn
from (
    select convert(date, dIntervalStart) as theDay
         dIntervalStart IntervalStart, count(cName) AgentsLoggedIn
    from IAgentQueueStats
    where cReportGroup = '*'
       and cHKey3 = '*'
       and cHKey4 = '*'
       and tAgentLoggedIn > 0
       and dIntervalStart >= '2013-09-24 00:00:00'
       and dIntervalStart <= '2013-09-24 23:59:59'
    group by 
       nDuration, dIntervalStart ) as q
group by theDay;
于 2013-09-26T02:57:13.870 回答