Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- DECLARE @dt1 DATETIME = '02-01-2019 00:00:00.001'
- DECLARE @dt2 DATETIME = '02-18-2019 23:59:59.990'
- declare @interval int = 2
- declare @gr int = 0
- */
- /*select 1, 'По часам'
- union all
- select 2, 'По дням'
- union all
- select 3, 'По 15 минут'
- union all
- select 4, 'По 30 минут'*/
- declare @intMin int
- select @intMin = case @interval
- when 1 then 60
- when 2 then 1440
- when 3 then 15
- when 4 then 30
- end
- declare @group table (id uniqueidentifier)
- if (@gr=0)
- begin
- delete @group
- insert into @group
- select id from [oktell_settings].[dbo].[A_Users]
- where name in ('Сапрыкин Иван','Черкасов Станислав','Чухустов Андрей')
- end
- if (@gr=1)
- begin
- delete @group
- insert into @group
- select id from [oktell_settings].[dbo].[A_Users]
- where name in (
- 'Самойлова Ольга/Струкова Светлана',
- 'Ананьева Татьяна/Гальцева Ольга',
- 'Бабакина Ольга/Шукаева Ирина',
- 'Муравьева Елена/Мохнатова Екатерина',
- 'Буданова Ольга/ Бузнакова Елена',
- 'Черепова Анна/Белова Ирина',
- 'Кленова Лариса/Яковчик Ольга',
- 'Лукьянова Виктория/ Колганова Влада',
- 'Мазанова Анна/Горланова Елизавета',
- 'Коньшина Мария/Скробот Екатерина',
- 'Зайченко Анна/Алексеенко Евгения',
- 'Зайченко Анна/Алексеенко Евгения',
- 'Антонова Ольга/Елдышева Мария',
- 'Емельянова Наталья/Наумова Татьяна',
- 'Грицкевич Мария/Дильман Яна',
- 'Дронова Оксана/Чудакова Евгения',
- 'Супранова Надежда')
- end
- if (@gr=2)
- begin
- delete @group
- insert into @group
- select id from [oktell_settings].[dbo].[A_Users]
- where name in (
- '6600',
- 'Врач консультант 1',
- 'Врач консультант 2',
- '8104',
- '8122',
- '8123')
- end
- if (@gr=3)
- begin
- delete @group
- insert into @group
- select id from [oktell_settings].[dbo].[A_Users]
- where name in (
- 'Файнгерц Борис',
- 'Апаршева Кристина',
- 'Дзюба Елена',
- 'Цукан Альбина')
- end
- if (@gr=4)
- begin
- delete @group
- insert into @group
- select id from [oktell_settings].[dbo].[A_Users]
- where name in (
- 'Чукичева Ольга Витальевна',
- 'Резникова Людмила Алексеевна',
- 'Кириллова Наталья Петровна',
- 'Соколова Людмила Валерьевна',
- 'Розинкевич Анна Викторовна',
- 'Маслова Елена Владимировна',
- 'Козлова Анна Геннадьевна',
- 'Лапшина Ярослава Евгеньевна',
- 'Яковлева Людмила Дмитриевна',
- 'Гальченко Анна Олеговна',
- 'Игнатова Анжелика Александровна 1',
- 'Вострикова Ирина Александровна',
- 'Демьяненко Оксана Юрьевна',
- 'Назарова Татьяна Владимировна',
- 'Смирных Елена Леонидовна',
- 'Князева Мария Валерьевна',
- 'Дмуховская Юлия Валерьевна',
- 'Целовальникова Наталья Алексеевна',
- 'Погорелова Софья Валерьевна',
- 'Абрамова Наталья',
- 'Копеева Оксана Владимировна',
- 'Невзорова Алия Наримовна',
- 'Кнутова Юлия Николаевна',
- 'Савиных Полина Андреевна',
- 'Цыплухина Елена Фаритовна')
- end
- if (@gr=5)
- begin
- delete @group
- insert into @group
- select id from [oktell_settings].[dbo].[A_Users]
- where name in (
- '2805',
- 'Петрова Светлана',
- '8110',
- '8107',
- '2800',
- '2835',
- '2806')
- end
- if (@gr=6)
- begin
- delete @group
- insert into @group
- select id from [oktell_settings].[dbo].[A_Users]
- where name in (
- 'Мутовкин Константин Олегович',
- 'Козачек Алексей Сергеевич',
- 'Опалев Павел Александрович',
- 'Купянский Артем Васильевич',
- 'Фадеев Роман Константинович',
- 'Вяземский Евгений Олегович',
- 'Палевич Юрий',
- 'Шкаликов Дмитрий Валерьевич',
- 'Щербачев Вячеслав Владимирович',
- 'Лаптев Антон Васильевич',
- 'Саламандык Андрей Сергеевич',
- 'Кузнецов Игорь Александрович',
- 'Гумов Астемир Асланович',
- 'Евстифеев Евгений Анатольевич')
- end
- --select * from @group
- DECLARE @ConnectionIdChains TABLE (IdChain UNIQUEIDENTIFIER, BUserId UNIQUEIDENTIFIER, Name NVARCHAR(250), lenq int, lentime int, timestart datetime)
- INSERT INTO @ConnectionIdChains (IdChain, BUserId, Name, lenq, lentime, timestart)
- SELECT IdChain, [BUserId], [Name].[Name], datediff(SS, TimeStart, TimeAnswer) , datediff(ss, TimeAnswer, TimeStop) , TimeStart
- FROM [oktell].[dbo].[A_Stat_Connections_1x1] AS CON3 WITH (NOLOCK)
- LEFT JOIN [oktell].[dbo].[A_Users] AS [Name]
- ON CON3.[BUserId] = [Name].ID
- WHERE BUserId IN (SELECT [Id] FROM @group)
- AND TimeStart BETWEEN @dt1 AND @dt2
- AND ([ConnectionType] = 5)
- GROUP BY IdChain, [BUserId], [Name], datediff(ss, TimeStart, TimeAnswer) , datediff(ss, TimeAnswer, TimeStop), TimeStart
- --select * from @ConnectionIdChains
- DECLARE @MissedIdChains TABLE (IdChain UNIQUEIDENTIFIER, BUserId UNIQUEIDENTIFIER, Name NVARCHAR(250), timestart datetime)
- INSERT INTO @MissedIdChains (IdChain, BUserId, Name, timestart)
- SELECT IdChain, [BUserId], [Name].[Name],TimeStart
- FROM [oktell].[dbo].[A_Stat_MissedCalls] AS CON3 WITH (NOLOCK)
- LEFT JOIN [oktell].[dbo].[A_Users] AS [Name]
- ON CON3.[BUserId] = [Name].ID
- WHERE BUserId IN (SELECT [Id] FROM @group)
- AND TimeStart BETWEEN @dt1 AND @dt2
- GROUP BY IdChain, [BUserId], [Name], TimeStart
- --select * from @MissedIdChains
- DECLARE @Result TABLE (IdChain UNIQUEIDENTIFIER, BUserId UNIQUEIDENTIFIER, Name NVARCHAR(250), FlagAccepting INT, FlagMissed INT, lenq int, lentime int, timestart datetime)
- INSERT INTO @Result (IdChain, BUserId, Name, FlagAccepting, FlagMissed, timestart)
- SELECT IdChain, BUserId, Name, '0', '1', timestart
- FROM @MissedIdChains
- INSERT INTO @Result (IdChain, BUserId, Name, FlagAccepting, FlagMissed, lenq, lentime, timestart)
- SELECT IdChain, BUserId, Name, '1', '0', lenq, lentime, timestart
- FROM @ConnectionIdChains
- select case @interval
- when 1 then convert(nvarchar(5),[time],108) + ' - ' + convert(nvarchar(5),dateadd(hh,1,[time]),108)
- when 2 then convert(nvarchar(5),[time],4) + ' ' + cast(datepart(yy,[time]) as nvarchar(4)) -- + ' г.'
- when 3 then convert(nvarchar(5),[time],108) + ' - ' + convert(nvarchar(5),dateadd(mi,15,[time]),108)
- when 4 then convert(nvarchar(5),[time],108) + ' - ' + convert(nvarchar(5),dateadd(mi,30,[time]),108)
- end time
- ,count(*) [Всего]
- , sum(FlagAccepting) [Принято]
- , sum(FlagMissed) [Пропущено]
- , oktell.dbo.GetTimeFromSecond( round(avg(lenq),0)) [Ср. время ож.]
- , oktell.dbo.GetTimeFromSecond( round(avg(lentime),0)) [Ср. дл. (успешных)] from (
- select *, case when @interval in (1,3,4) then DATEADD(mi, DATEDIFF(mi, '19000101', TimeStart)/@intMin*@intMin, '19000101')
- when @interval = 2 then cast(floor(cast (timestart as float)) as datetime)
- end time from @Result) t
- group by time
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement