Я создал следующий код T-SQL для печати некоторых переменных, которые я вычисляю для введенного периода.
Моя цель теперь состоит в том, чтобы напечатать мои вычисленные переменные для каждого дня за указанный период (В противном случае мне нужно повторять мое лечение на каждый день между введенными датами и затем печатать переменные)
Запрос T-SQL:
DECLARE @id INT
DECLARE @name NVARCHAR(20), @date date,
@attemptresult varchar(20), @servername varchar(20)
DECLARE @getid CURSOR
DECLARE @MAX_RES_MXUI1 INT, @MXUI1 INT, @MAX_RES_MXUI2 INT;
DECLARE @dstartDate DATE, @endDate DATE
SET @dstartDate = '03/04/2018';
SET @endDate = '04/05/2018';
SET @MXUI1 = 0
SET @MAX_RES_MXUI1 = 0
SET @MXUI2 = 0
SET @MAX_RES_MXUI2 = 0
SET @getid = CURSOR FOR
SELECT
maxsessionuid, name,
attemptdate, attemptresult,
servername
FROM
logintracking
WHERE
attemptresult != 'ECHEC'
AND attemptdate BETWEEN @dstartDate AND @endDate
ORDER BY
attemptdate
PRINT('DATE, MAXUI1, MXUI2')
OPEN @getid
FETCH NEXT FROM @getid INTO @id, @name, @date, @attemptresult, @servername
WHILE @@FETCH_STATUS = 0
BEGIN
-- MXUI1
IF @attemptresult = 'CONNEXION' and @servername = 'MXUI1'
SET @MXUI1 = @MXUI1 + 1
IF @MAX_RES_MXUI1 < @MXUI1
SET @MAX_RES_MXUI1 = @MXUI1
ELSE IF (@attemptresult = 'DECONNEXION' OR @attemptresult = 'LOGOUT' OR
@attemptresult = 'DELAIDEPASSE') AND @servername = 'MXUI1'
SET @MXUI1 = @MXUI1 - 1
-- MXUI2
IF @attemptresult = 'CONNEXION' AND @servername = 'MXUI2'
SET @MXUI2 = @MXUI2 + 1
IF @MAX_RES_MXUI2 < @MXUI2
SET @MAX_RES_MXUI2 = @MXUI2
ELSE IF (@attemptresult = 'DECONNEXION' OR @attemptresult = 'LOGOUT' OR
@attemptresult = 'DELAIDEPASSE') AND @servername = 'MXUI2'
SET @MXUI2 = @MXUI2 - 1
FETCH NEXT FROM @getid INTO @id, @name, @date, @attemptresult, @servername
END
PRINT('NEED TO SHOW EVERYDAY DATE IN THE PERIOD, '+CONVERT(varchar(10), @MAX_RES_MXUI1)+', '+CONVERT(varchar(10), @MAX_RES_MXUI2))
CLOSE @getid
DEALLOCATE @getid
Результат запроса:
DATE MAXUI1 MXUI2
---------------------------
NEED TO SHOW EVERYDAY DATE IN THE PERIOD,11, 15
Желаемый результат:
DATE MAXUI1 MXUI2
-----------------------------
03-04-2018 11 15
04-04-2018 13 19
05-04-2018 29 15
...