Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /****** Script for SelectTopNRows command from SSMS ******/
- DECLARE @MissingPhoneCalls TABLE(Date_ date, Missing_Calls int)
- DECLARE @FailedPhoneCalls TABLE(Date_ date, Failed_Calls int)
- DECLARE @In_Out_Calls TABLE(Date_ date, Outcoming_Calls int, Incoming_Calls int)
- DECLARE @ThreePhoneCalls TABLE(Date_ date, Outcoming_Calls int, Incoming_Calls int, Missing_Calls int)
- DECLARE @AllCalls TABLE(Date_ date, Outcoming_Calls int, Incoming_Calls int, Missing_Calls int, Failed_Calls int)
- DECLARE @Operators TABLE(Operator nvarchar(200), Id uniqueidentifier, Date_ date)
- --Переменные
- DECLARE @USERS TABLE(Id uniqueidentifier)
- DECLARE @DATE_START date
- DECLARE @DATE_END date
- SET @DATE_START = '2017-05-17'
- SET @DATE_END = '2019-05-24'
- INSERT @USERS VALUES('273042C9-7A73-4AFE-8C0A-A8E6C02998E9')
- --Получаем количество входящих и исходящих звонков, схраням в переменную
- INSERT INTO @In_Out_Calls
- SELECT
- CAST(TimeStart AS DATE) AS Date_
- ,COUNT(IIF(ReasonStart=3, 1, NULL))
- ,COUNT(IIF(ReasonStart=2, 1, NULL))
- FROM [oktell].[dbo].[A_Stat_Connections_1x1]
- GROUP BY CAST(TimeStart AS DATE)
- ORDER BY CAST(TimeStart AS DATE)
- --Сохраняем в переменную пропущенные звонки
- INSERT INTO @MissingPhoneCalls
- SELECT
- CAST([oktell].[dbo].[A_Stat_MissedCalls].TimeStart AS DATE)
- ,COUNT(*)
- FROM
- [oktell].[dbo].[A_Stat_Connections_1x1]
- INNER JOIN
- [oktell].[dbo].[A_Stat_MissedCalls]
- ON [oktell].[dbo].[A_Stat_Connections_1x1].IdChain = [oktell].[dbo].[A_Stat_MissedCalls].IdChain
- GROUP BY CAST([oktell].[dbo].[A_Stat_MissedCalls].TimeStart AS DATE)
- --Сохраняем в переменную неудачные звонки
- INSERT INTO @FailedPhoneCalls
- SELECT
- CAST([oktell].[dbo].[A_Stat_FailedCalls].TimeStart AS DATE)
- ,COUNT(*)
- FROM
- [oktell].[dbo].[A_Stat_Connections_1x1]
- INNER JOIN
- [oktell].[dbo].[A_Stat_FailedCalls]
- ON [oktell].[dbo].[A_Stat_Connections_1x1].IdChain = [oktell].[dbo].[A_Stat_FailedCalls].IdChain
- GROUP BY CAST([oktell].[dbo].[A_Stat_FailedCalls].TimeStart AS DATE)
- --Сохраняем в промежуточную переменную - входящие, исходящие и пропущенные
- INSERT INTO @ThreePhoneCalls
- SELECT [@In_Out_Calls].Date_
- ,Outcoming_Calls
- ,Incoming_Calls
- ,[@MissingPhoneCalls].Missing_Calls
- FROM
- @In_Out_Calls
- LEFT JOIN
- @MissingPhoneCalls
- ON [@In_Out_Calls].Date_= [@MissingPhoneCalls].Date_
- --Сохраняем в промежуточную переменную - входящие, исходящие, пропущенные и неудачные
- INSERT INTO @AllCalls
- SELECT [@ThreePhoneCalls].Date_
- ,Outcoming_Calls
- ,Incoming_Calls
- ,Missing_Calls
- ,[@FailedPhoneCalls].Failed_Calls
- FROM
- @ThreePhoneCalls
- LEFT JOIN
- @FailedPhoneCalls
- ON [@ThreePhoneCalls].Date_= [@FailedPhoneCalls].Date_
- --SELECT *
- --FROM @AllCalls
- --сохранение операторов в переменную
- INSERT INTO @Operators
- SELECT [oktell_settings].[dbo].[A_Users].Name
- ,[oktell_settings].[dbo].[A_Users].ID
- ,CAST(TimeStart AS DATE) AS Date_
- FROM
- [oktell].[dbo].[A_Stat_Connections_1x1]
- INNER JOIN
- [oktell_settings].[dbo].[A_Users]
- ON [oktell].[dbo].[A_Stat_Connections_1x1].BUserId = [oktell_settings].[dbo].[A_Users].ID
- GROUP BY [oktell_settings].[dbo].[A_Users].Name, [oktell_settings].[dbo].[A_Users].ID, CAST(TimeStart AS DATE)
- --Вывод таблицы с операторами и звонками
- SELECT Operator
- ,ID
- ,[@AllCalls].Date_
- ,Outcoming_Calls
- ,Incoming_Calls
- ,Missing_Calls
- ,Failed_Calls
- FROM @Operators
- INNER JOIN
- @AllCalls
- ON [@AllCalls].Date_ = [@Operators].Date_
- --Проверка даты
- WHERE [@AllCalls].Date_ >= @DATE_START AND [@AllCalls].Date_ <= @DATE_END
- AND NOT EXISTS (SELECT Id FROM @USERS WHERE [@USERS].Id = [@Operators].Id)
- ORDER BY [@AllCalls].Date_
Advertisement
Add Comment
Please, Sign In to add comment