Doubts about Stored Procedures

Asked

Viewed 20 times

0

Good Afternoon, I have a Stored Procedure, the purpose of it is to insert the data from a Mirror table and not bring repeated Id’s, as it has a robot that does data extraction and inserts in the mirror table, brings many duplicated data, however my procedure is not entering, could someone help me?

    DECLARE     @Idade              VARCHAR(10),
            @Data               DATE
            -- ATRIBUI A DATA ATUAL DA PROCEDURE
            SET @Data = GETDATE()
BEGIN

-- INSERE OS DADOS NA TABELA BACKLOG
INSERT INTO Backlog(         [Id_Espelho]
                            ,[Data]
                            ,[IdIncidente]
                            ,[Sobrenome]
                            ,[Nome]
                            ,[Sumario]
                            ,[Prioridade]
                            ,[Status]
                            ,[MotivoStatus]
                            ,[GrupoDesignado]
                            ,[Designado]
                            ,[DataAlvo]
                            ,[StatusSLM]
                            ,[CriadoEm]
                            ,[Empresa]
                            ,[DataFechamento]
                            ,[ImportacaoLog]
                            ,NomeRelatorio)
-- INSERE OS ÚLTIMO ID DE CADA CHAMADO PARA NÃO TRAZER REPETIÇÃO
Select E.Id,GETDATE(),E.Incidente, E.SobreNome, E.Nome, E.Sumario, E.Prioridade, E.Status, E.MotivoStatus, E.GrupoDesignado, E.Designado, E.DataAlvo, E.StatusTempoSlm, E.DataAbertura, E.Empresa, E.DataFechamento, E.ImportacaoLog, E.NomeRelatorio 
FROM EspelhoBacklog E
WHERE E.Id = ( Select Max (Id) FROM EspelhoBacklog  Where Incidente = (Select MAX (Incidente) From EspelhoBacklog Where Incidente = e.Incidente)) 
AND E.Id NOT IN (SELECT Id_Espelho From Backlog)


-- REALIZA UM UPDATE EM TODOS OS VALORES EM BRANCO DA COLUNA DATA ALVO PARA NULL NA TABELA BACKLOG
UPDATE Backlog SET  
DataAlvo = NULL
WHERE DataAlvo = ''

-- REALIZA UM UPDATE PARA MOSTRAR EM DIAS A IDADE TOTAL DO CHAMADO

UPDATE Backlog SET Idade =
DATEDIFF(DAY,DataAlvo,@Data)

-- REALIZA UM UPDATE PARA ATUALZIAR OS CHAMADOS COM IDADE NEGATIVA

UPDATE Backlog SET Idade = ' ' WHERE Idade < 0

-- REALIZA UM UPDATE PARA DEIXAR OS VALORES NULOS COMO 0

UPDATE Backlog SET Idade = ISNULL(Idade,0)

-- EXCLUI OS REGISTROS COM ID'S REPETIDOS DEIXANDO APENAS O ULTIMO ID REGISTRADO

DELETE Backlog FROM Backlog
INNER JOIN Backlog O
ON O.Id = Backlog.Id
WHERE O.Id NOT IN
( Select DISTINCT Max (Id) fROM Backlog WHERE Backlog.IdIncidente = 
(SELECT MAX(Backlog.IdIncidente) FROM Backlog WHERE Backlog.IdIncidente = O.IdIncidente)) 
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.