/************************************************** * update cognome nome dipendenti **************************************************/ UPDATE Dipendenti SET codDipendenteExt = Nome + ' ' + Cognome UPDATE Dipendenti SET codDipendenteExt='Bohdan Khomonchak' WHERE cognome='Khomonchak' /************************************************** * importo records! **************************************************/ -- faccio un sort x dipendente-giorno x accodare i records -- faccio un sort x dipendente-giorno x accodare i records ;WITH myCteStep1 AS ( SELECT CognomeNome ,Data , ROW_NUMBER() OVER(PARTITION BY CognomeNome,Data ORDER BY CognomeNome,Data) as riga , codCom , Fase , attivita , durata*60 as minuti , descrizione FROM zzz_rawData_SPS ) , myCteStep2 AS ( SELECT * , DATEADD(MINUTE,480+120*(riga-1),Data) AS Inizio , DATEADD(MINUTE,480+120*(riga-1)+minuti,Data) AS Fine FROM myCteStep1 ) INSERT INTO RegAttivita(idxDipendente, idxFase, inizio, fine, descrizione) SELECT Dip.idxDipendente, Fas.idxFase, cte.Inizio,cte.Fine, ISNULL(cte.Descrizione,'-') FROM myCteStep2 cte INNER JOIN Dipendenti Dip ON cte.CognomeNome = dip.codDipendenteExt INNER JOIN AnagProgetti Pro ON cte.codCom = Pro.codExt -- and pro.idxCliente=cli.idxCliente INNER JOIN AnagFasi Fas ON Fas.nomeFase = cte.Fase AND Fas.idxProgetto = Pro.idxProgetto AND Fas.idxFaseAncest=0 INNER JOIN AnagFasi SFas ON SFas.nomeFase = cte.attivita AND SFas.idxProgetto = Pro.idxProgetto AND SFas.idxFaseAncest=fas.idxFase LEFT OUTER JOIN RegAttivita dati ON dati.inizio = cte.Inizio AND dati.fine = cte.Fine AND dati.descrizione = cte.Descrizione AND dati.idxDipendente = Dip.idxDipendente WHERE dati.idxRA IS NULL --- forzo ricalcolo attivitą expl! EXEC stp_ricalcolaRegAttivitaExpl_byPeriodoUser 0, '20120101', '20130120'