set xact_abort on go begin transaction go set ANSI_NULLS on go -- ============================================= -- Author: Samuele E. Locatelli -- Create date: 2011-02-20 -- Description: -- ============================================= create PROCEDURE stp_zzz_rimuoviDuplicatiConsecutivi -- Add the parameters for the stored procedure here @idxMacchina int AS BEGIN SET NOCOUNT ON; DECLARE @InizioStato DATETIME, @IdxTipo INT, @MatricolaKanban NVARCHAR(50); DECLARE @InizioStatoPrec DATETIME, @IdxTipoPrec INT, @MatricolaKanbanPrec NVARCHAR(50); DECLARE @messaggio NVARCHAR(500); -- mostro conteggio eventi SELECT count(*), DATEPART(DD,InizioStato) AS inizio FROM EventList WHERE IdxMacchina=37 GROUP BY DATEPART(DD,InizioStato) -- inizializzo valori precedenti SET @InizioStatoPrec = (SELECT Top 1 InizioStato FROM EventList WHERE idxMacchina = @idxMacchina ORDER BY InizioStato ASC); SET @IdxTipoPrec = (SELECT Top 1 IdxTipo FROM EventList WHERE idxMacchina = @idxMacchina ORDER BY InizioStato ASC); SET @MatricolaKanbanPrec = (SELECT Top 1 MatricolaKanban FROM EventList WHERE idxMacchina = @idxMacchina ORDER BY InizioStato ASC); -- uso un cursore x percorrere i dati... DECLARE eventiDuplicati CURSOR FOR SELECT InizioStato, IdxTipo, MatricolaKanban FROM EventList WHERE IdxMacchina = @idxMacchina ORDER BY InizioStato; OPEN eventiDuplicati; FETCH NEXT FROM eventiDuplicati INTO @InizioStato, @IdxTipo,@MatricolaKanban; WHILE @@FETCH_STATUS = 0 BEGIN -- controllo: se uguali i valori ai precedenti elimino attuale... IF((@InizioStato > @InizioStatoPrec) AND (@IdxTipo = @IdxTipoPrec) AND (@MatricolaKanban = @MatricolaKanbanPrec)) BEGIN SELECT @messaggio = '--> Old tipo: ' + CAST(@IdxTipoPrec AS NVARCHAR(50)) + ' - new: ' + CAST(@IdxTipo AS NVARCHAR(50)) + ' | old time: ' + CAST(@InizioStatoPrec AS NVARCHAR(250)) + ' - new: ' +CAST(@InizioStato AS NVARCHAR(250)) + ' | old kanban: ' + CAST(@MatricolaKanbanPrec AS NVARCHAR(250)) + ' - new: ' +CAST(@MatricolaKanban AS NVARCHAR(250)); PRINT @messaggio; -- elimino riga errata DELETE FROM EventList WHERE InizioStato=@InizioStato and IdxMacchina=@idxMacchina and IdxTipo=@IdxTipo and MatricolaKanban=@MatricolaKanban; END ELSE BEGIN SELECT @messaggio = 'Ok Old tipo: ' + CAST(@IdxTipoPrec AS NVARCHAR(50)) + ' - new: ' + CAST(@IdxTipo AS NVARCHAR(50)) + ' | old time: ' + CAST(@InizioStatoPrec AS NVARCHAR(250)) + ' - new: ' +CAST(@InizioStato AS NVARCHAR(250)) + ' | old kanban: ' + CAST(@MatricolaKanbanPrec AS NVARCHAR(250)) + ' - new: ' +CAST(@MatricolaKanban AS NVARCHAR(250)); --PRINT @messaggio; END SET @InizioStatoPrec = @InizioStato; SET @IdxTipoPrec = @IdxTipo; SET @MatricolaKanbanPrec = @MatricolaKanban; -- Get the next values. FETCH NEXT FROM eventiDuplicati INTO @InizioStato, @IdxTipo, @MatricolaKanban; END CLOSE eventiDuplicati; DEALLOCATE eventiDuplicati; -- mostro conteggio eventi SELECT count(*), DATEPART(DD,InizioStato) AS inizio FROM EventList WHERE IdxMacchina=37 GROUP BY DATEPART(DD,InizioStato) END go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go /************************************* * STORED PROCEDURE stp_TC_getCodArticoliByMacchinaPeriodo * recupera tempi ciclo x machcian e periodo * * modif.: S.E.L. - 2010.12.18 **************************************/ create PROCEDURE stp_TC_getCodArticoliByMacchinaPeriodo ( @IdxMacchina NVARCHAR(50), @Inizio DATETIME, @Fine DATETIME ) AS SELECT DISTINCT(CodArticolo) FROM TempiCicloRilevati WHERE IdxMacchina = @IdxMacchina AND (DataOraRif >= @Inizio) AND (DataOraRif <= @Fine) RETURN go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go /************************************* * STORED PROCEDURE stp_TC_getByMacchinaPeriodoArticolo * recupera tempi ciclo x macchina, articolo e periodo * * modif.: S.E.L. - 2010.12.18 **************************************/ create PROCEDURE stp_TC_getByMacchinaPeriodoArticolo ( @IdxMacchina NVARCHAR(50), @CodArticolo NVARCHAR(50), @Inizio DATETIME, @Fine DATETIME ) AS SELECT * FROM TempiCicloRilevati WHERE IdxMacchina = @IdxMacchina AND CodArticolo = @CodArticolo AND (DataOraRif >= @Inizio) AND (DataOraRif <= @Fine) ORDER BY DataOraRif RETURN go commit go alter table DatiMacchine add constraint PK_DatiMacchine primary key(idxMacchina) go -- registro versione... INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(230, GETDATE()) GO