Realizar un job con el siguiente Query
Publicado por Alberto (6 intervenciones) el 06/01/2020 16:20:17
Buen día
Estoy trabajando en SQL Server Management Studio
Verán necesito realizar un Job que se realice de manera mensual y tengo el siguiente Query
Lo que no se como realizar es para que sea de manera automática y que pare a la hora de que el RESTANTE sea 0 y el @Control se vuelva a iniciar nuevamente con el valor de inicio
Estoy trabajando en SQL Server Management Studio
Verán necesito realizar un Job que se realice de manera mensual y tengo el siguiente Query
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
DECLARE @CONTEO INT, @CONTROL INT, @FECHA_IN DATE, @FECHA_FIN DATE, @ALERTA INT, @MESSAGE AS NVARCHAR(300), @PAY INT
SET @PAY =25
SET @CONTROL=25000
SET @FECHA_IN = '2016-08-01'
SET @FECHA_FIN = '2016-08-31'
SET @CONTEO=@CONTROL*0.2
SET @ALERTA = 0
WHILE (@CONTROL >=0)
BEGIN
--CONDICION
IF(@CONTROL<=(@CONTEO))
BEGIN
IF(@ALERTA=0)
BEGIN
SET @MESSAGE = CONCAT(CONVERT(NVARCHAR(300),@CONTROL), ' CANTIDAD RESTANTE DE LA PAYSATATION ',CONVERT(NVARCHAR(300),@PAY))
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Notifications',
@recipients = 'digitador@ventasurbanica.com',
@body = @MESSAGE,
@subject = 'ALERTA DE TICKETS';
SET @ALERTA=1
END
END
IF(@CONTROL<(SELECT COUNT(intReceiptNumber) FROM dbo.trDPFEE
WHERE dtExitDate BETWEEN @FECHA_IN AND @FECHA_FIN AND intBoardNumber = @PAY AND intReceiptNumber<>0))
BEGIN
BREAK
END
ELSE
BEGIN
--REALIZA LA CONSULTA
SELECT intBoardNumber AS [PAYSTATION],
COUNT(intReceiptNumber) AS [DATO REAL],
MIN(intReceiptNumber) AS [DEL],
MAX(intReceiptNumber) AS [AL],
@CONTROL-COUNT(intReceiptNumber) AS [RESTANTE]
FROM dbo.trDPFEE WHERE dtExitDate BETWEEN @FECHA_IN AND @FECHA_FIN AND intBoardNumber = @PAY AND intReceiptNumber<>0
GROUP BY intBoardNumber
END
--CAMBIA EL VALOR
SET @CONTROL =(SELECT @CONTROL-COUNT(intReceiptNumber)
FROM trDPFee
WHERE dtExitDate BETWEEN @FECHA_IN AND @FECHA_FIN AND intBoardNumber = @PAY AND intReceiptNumber<>0)
--SEGUIENTE MES
SET @FECHA_IN=DATEADD(MONTH, 1, @FECHA_IN)
SET @FECHA_FIN=DATEADD(MONTH, 1, @FECHA_FIN)
END
Lo que no se como realizar es para que sea de manera automática y que pare a la hora de que el RESTANTE sea 0 y el @Control se vuelva a iniciar nuevamente con el valor de inicio
Valora esta pregunta


0