Agradecería me ayudaran a rev
Código:
CREATE PROCEDURE sp_PresenciasFijas AS SET NOCOUNT ON SELECT idPresenciaFija, Case datepart(mm,fechaInicio) When 1 then 'Enero' When 2 then 'Febrero' When 3 then 'Marzo' When 4 then 'Abril' When 5 then 'Mayo' When 6 then 'Junio' When 7 then 'Julio' When 8 then 'Agosto' When 9 then 'Septiembre' When 10 then 'Octubre' When 11 then 'Noviembre' When 12 then 'Diciembre' End as mes,month(fechaInicio)as mesN, year(fechaInicio) ano, day(fechaInicio) as diaI,day(fechaFin) as diaF, DateDiff(day,fechaInicio,fechaFin)diferencia, fechaInicio, fechaFin, Portal.nombrePortal, Portal.idPortal into temppresenciasFijas FROM PresenciasFijas INNER join Portal ON Portal.idPortal = PresenciasFijas.idPortal --WHERE presenciasFijas.idPortal =1 order by month(fechaInicio) CREATE TABLE tempPres (IDPRESENCIAFIJA INT,MES VARCHAR (50) ,MESN INT,ANO INT,DIAI INT ,DIAF INT,DIFERENCIA INT,FECHAINICIO DATETIME,FECHAFIN DATETIME,NOMBREPORTAL VARCHAR (150) ,IDPORTAL INT) DECLARE @IDPRESENCIAFIJA INT, @MES VARCHAR(50) , @MESN INT, @ANO INT, @DIAI INT , @DIAF INT, @DIFERENCIA INT, @FECHAINICIO DATETIME, @FECHAFIN DATETIME, @NOMBREPORTAL VARCHAR(150) , @IDPORTAL INT, @NUM INT --Se declara el cursor DECLARE CURSORUNI CURSOR FOR SELECT IDPRESENCIAFIJA, MES,MESN, ANO, DIAI, DIAF, DIFERENCIA, FECHAINICIO,FECHAFIN, NOMBREPORTAL, IDPORTAL FROM dbo. temppresenciasFijas OPEN CURSORUNI FETCH NEXT FROM CURSORUNI INTO @IDPRESENCIAFIJA, @MES, @MESN, @ANO, @DIAI, @DIAF, @DIFERENCIA, @FECHAINICIO,@FECHAFIN, @NOMBREPORTAL, @IDPORTAL --Se recorre el cursor WHILE (@@fetch_status <> -1) BEGIN IF(@DIFERENCIA=1) BEGIN SET @NUM =0 INSERT INTO dbo.tempPres ( IDPRESENCIAFIJA, MES,MESN, ANO, DIAI, DIAF, DIFERENCIA, FECHAINICIO,FECHAFIN, NOMBREPORTAL, IDPORTAL) VALUES ( @IDPRESENCIAFIJA,@MES,@MESN, @ANO, @DIAI, @DIAF, @DIFERENCIA, @FECHAINICIO,@FECHAFIN, @NOMBREPORTAL, @IDPORTAL) END ELSE BEGIN WHILE(@NUM=@DIFERENCIA) set @FECHAINICIO =Dateadd(day,@NUM,@fechaInicio) BEGIN INSERT INTO dbo. tempPres ( IDPRESENCIAFIJA, MES,MESN, ANO, DIAI, DIAF, DIFERENCIA, FECHAINICIO,FECHAFIN, NOMBREPORTAL, IDPORTAL) VALUES ( @IDPRESENCIAFIJA,@MES,@MESN, @ANO, @DIAI, @DIAF, @DIFERENCIA, @FECHAINICIO,@FECHAFIN, @NOMBREPORTAL, @IDPORTAL) SET @NUM= @NUM+1 END END END drop table tempPresenciasFijas DROP TABLE tempPres SET NOCOUNT OFF RETURN GO