2013-09-26 2 views
0

Я пытаюсь запустить этот запрос за каждый день за последний год. Есть ли способ автоматизировать процесс и вернуть список MaxAgentsLoggedIn на каждый день?Хранимая процедура SQL Server 2008 - выполняется один раз в день

Заранее спасибо

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 
+0

В этом обсуждении показано, как планировать хранимую процедуру. http://stackoverflow.com/questions/287060/scheduled-run-of-stored-procedure-on-sql-server – user2601995

+0

Какой тип БД? В Oracle DB используйте dbms_job, привязанный к хранимой процедуре, в mySQL, посмотрите на этот документ: http://dev.mysql.com/doc/refman/5.1/en/events-overview.html –

ответ

0

Вместо Итерируя запрос на день, вы можете включать в день в запросе, а затем группу по день?

Question 113045 есть ответ, который показывает, как вытащить только дату от времени даты, используя

convert(date, dIntervalStart) 

Если добавить эту дату в запросе, вы можете запросить максимум (AgentsLoggedIn) из результата и получить список по дням.

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; 
+0

Привет, tAgentloggedin количество времени, в течение которого агент оставался зарегистрированным не в метке времени. Очередь работает правильно на один день. Я просто пытаюсь запустить несколько дней. – user2817598

+0

Можете ли вы отредактировать вопрос, чтобы добавить определение таблицы - по крайней мере, определение соответствующих столбцов? Это может облегчить вам помощь. – GregA100k

+0

Привет, G_A. Я добавил определение таблицы – user2817598

Смежные вопросы