BD.PROC.ACD PROC INF RELLAMADAS
1 Descripción
2 Parámetros
USE `nimitz`;
DROP procedure IF EXISTS `nimitz`.`ACD_PROC_INF_RELLAMADAS`;
DELIMITER $$
USE `nimitz`$$
CREATE DEFINER=`adminNimitz`@`%` PROCEDURE `ACD_PROC_INF_RELLAMADAS`(IN FILTRO VARCHAR(1000))
BEGIN
DECLARE V_HORA_INICIO DATETIME;
DECLARE V_ORIGEN VARCHAR(45);
DECLARE V_DESTINO VARCHAR(45);
SET @num = 0;
SET @consulta = CONCAT('SELECT MIN(DAT_LLAMADAS.D_HORA_INICIO) INTO @V_HORA_INICIO FROM DAT_LLAMADAS
LEFT JOIN DAT_SEGMENTOS ON DAT_LLAMADAS.ID = ID_LLAMADA
LEFT JOIN COM_USUARIOS ON COM_USUARIOS.ID = DAT_SEGMENTOS.ID_USUARIO
LEFT JOIN ACD_COLAS ON ACD_COLAS.ID = DAT_SEGMENTOS.ID_COLA
LEFT JOIN ACD_VDN ON ACD_VDN.ID = DAT_SEGMENTOS.ID_VDN
WHERE ', FILTRO);
PREPARE stmt from @consulta;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @consulta = CONCAT('SELECT X.C_ORIGEN,X.C_DESTINO,X.ROW_NUMBER VECES, X.HORA_INICIO
FROM(SELECT DAT_LLAMADAS.C_ORIGEN,DAT_LLAMADAS.C_DESTINO,DAT_LLAMADAS.D_HORA_INICIO,
@num := if(@V_ORIGEN = DAT_LLAMADAS.C_ORIGEN && @V_DESTINO = DAT_LLAMADAS.C_DESTINO && DATE_ADD(@V_HORA_INICIO, interval 5 MINUTE)>= DAT_LLAMADAS.D_HORA_INICIO, @num
+ 1, 1) as ROW_NUMBER,
@V_HORA_INICIO := DAT_LLAMADAS.D_HORA_INICIO as HORA_INICIO,
@V_ORIGEN := DAT_LLAMADAS.C_ORIGEN,
@V_DESTINO := DAT_LLAMADAS.C_DESTINO
FROM DAT_LLAMADAS
LEFT JOIN DAT_SEGMENTOS ON DAT_LLAMADAS.ID = ID_LLAMADA AND E_TIPO_SEGMENTO= 30
LEFT JOIN COM_USUARIOS ON COM_USUARIOS.ID = DAT_SEGMENTOS.ID_USUARIO
LEFT JOIN ACD_COLAS ON ACD_COLAS.ID = DAT_SEGMENTOS.ID_COLA
LEFT JOIN ACD_VDN ON ACD_VDN.ID = DAT_SEGMENTOS.ID_VDN
WHERE DAT_LLAMADAS.E_TIPO_LLAMADA = 20 AND ', FILTRO,
' ORDER BY DAT_LLAMADAS.C_ORIGEN,DAT_LLAMADAS.C_DESTINO, DAT_LLAMADAS.D_HORA_INICIO) AS X');
PREPARE stmt from @consulta;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END$$
DELIMITER ;