--1. CORRER LA VISTA CREATE OR ALTER VIEW VW_TNM AS SELECT TNM.TIPO_NOM, ISNULL(TNMH.FECHA_INICIAL,CAST('19600101' AS DATE)) FECHA_INICIAL, ISNULL(TNMH.FECHA_FINAL,CAST('20991231' AS DATE)) FECHA_FINAL, ISNULL(TNMH.HRS_DIA,TNM.HRS_DIA) HRS_DIA, ISNULL(TNMH.DIAS_P,TNM.DIAS_P) DIAS_P, ISNULL(TNMH.HORS_POR_MES,TNM.HORS_POR_MES) HORS_POR_MES FROM TNMH RIGHT JOIN TNM ON TNM.CNSTNM=TNMH.CNSTNM UNION SELECT TNM.TIPO_NOM, DATEADD(DAY,1,MAXTNMH.FECHA_FINAL) FECHA_INICIAL, CAST('20991231' AS DATE) FECHA_FINAL, TNM.HRS_DIA HRS_DIA, TNM.DIAS_P DIAS_P, TNM.HORS_POR_MES HORS_POR_MES FROM TNM JOIN (SELECT CNSTNM, MAX(FECHA_FINAL) FECHA_FINAL FROM TNMH GROUP BY CNSTNM ) AS MAXTNMH ON TNM.CNSTNM = MAXTNMH.CNSTNM --2. EJECUTAR LOS UPDATE UPDATE APE SET HRS_DIA=TNM.HRS_DIA FROM APE JOIN VW_TNM TNM ON APE.TIPO_NOM = TNM.TIPO_NOM AND APE.F_INI BETWEEN TNM.FECHA_INICIAL AND TNM.FECHA_FINAL WHERE ISNULL(APE.HRS_DIA,0) <> TNM.HRS_DIA GO UPDATE INE SET HRS_DIA=TNM.HRS_DIA FROM INE JOIN VW_TNM TNM ON INE.TIPO_NOM = TNM.TIPO_NOM AND INE.F_INI BETWEEN TNM.FECHA_INICIAL AND TNM.FECHA_FINAL WHERE ISNULL(INE.HRS_DIA,0) <> TNM.HRS_DIA GO UPDATE VAC SET HRS_DIA=TNM.HRS_DIA FROM VAC JOIN VW_TNM TNM ON VAC.TIPO_NOM = TNM.TIPO_NOM AND VAC.F_SAL_R BETWEEN TNM.FECHA_INICIAL AND TNM.FECHA_FINAL WHERE ISNULL(VAC.HRS_DIA,0) <> TNM.HRS_DIA GO UPDATE ACU SET HRS_DIA=TNM.HRS_DIA FROM ACU JOIN VW_TNM TNM ON ACU.TIPO_NOM = TNM.TIPO_NOM AND ACU.F_P BETWEEN TNM.FECHA_INICIAL AND TNM.FECHA_FINAL WHERE ISNULL(ACU.HRS_DIA,0) <> TNM.HRS_DIA GO UPDATE MLQ SET HRS_DIA=TNM.HRS_DIA FROM MLQ JOIN VW_TNM TNM ON MLQ.TIPO_NOM = TNM.TIPO_NOM AND MLQ.F_LIQ BETWEEN TNM.FECHA_INICIAL AND TNM.FECHA_FINAL WHERE ISNULL(MLQ.HRS_DIA,0) <> TNM.HRS_DIA GO