Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE @TIPOVSY VARCHAR(4) SET @TIPOVSY=(SELECT TOP 1 MNJ_VACAC FROM VSY)
- DECLARE @CLASENOM VARCHAR(4)
- SET @CLASENOM=(
- SELECT CASE WHEN @TIPOVSY ='C' THEN ISNULL((SELECT EMP.CLASE_NOM FROM EMP,CNM WHERE EMP.CLASE_NOM=CNM.CLASE_NOM AND EMP.EMPLEADO='MA0909936'),'')
- WHEN @TIPOVSY ='E' THEN ISNULL((SELECT EMP.CLASE_VAC FROM EMP,TVA WHERE EMP.CLASE_VAC=TVA.CLASE AND EMP.EMPLEADO='MA0909936'),'')
- ELSE ISNULL((SELECT TOP 1 CLASE_NOM FROM CNM ),'') END)
- SELECT ANO,EMPLEADO,ESTADO,convert(varchar, DATEADD(YEAR,-1,min(F_SAL_P)), 104) + ' y el ' +convert(varchar, DATEADD(DAY,-1,MAX(F_SAL_P)), 104) CAUSADO,
- convert(varchar, MIN(F_SAL_R), 104) +' hasta el '+convert(varchar, DATEADD(DAY,-1,max(F_REG_R)), 104) INGRESOS,convert(varchar, max(REGRESO), 104) REGRESO,SUM(DISFRUTADOS)DISFRUTADOS,SUM(DIAS_TOMADOS) DIAS_TOMADOS,SUM(DIAS_DINERO) DIAS_DINERO,SUM(NOHABILES) NOHABILES,
- SUM(HABILES) HABILES,SUM(SALDO) SALDO,F_ANTIGUEDAD,CASE WHEN SUM(SALDO) > 0 AND ANO <> '' THEN 1 WHEN SUM(SALDO) > 0 AND ANO = '' THEN 2 ELSE 0 END TEXTOSALDO,
- CASE WHEN SUM(DISFRUTADOS) > 0 THEN CASE WHEN SUM(DIAS_DINERO) > 0 THEN 2 ELSE 1 END ELSE CASE WHEN SUM(DIAS_DINERO) > 0 THEN 3 ELSE 0 END END TEXTOENCABEZADO
- FROM (
- SELECT '' ANO,VAC.EMPLEADO,VAC.ESTADO, F_SAL_P, F_SAL_R,VAC.F_REG_R,CPR.F_INI,CPR.F_FIN,
- DATEDIFF(DAY,F_SAL_R,F_REG_R) DISFRUTADOS,
- F_REG_R REGRESO,ISNULL(sum(DIAS_T),0) DIAS_TOMADOS,ISNULL(sum(DIAS_DIN + DIAS_DINERO),0) DIAS_DINERO ,
- CASE WHEN CPR.F_INI <= MIN(VAC.F_SAL_R) and MIN(VAC.F_SAL_R) <= CPR.F_FIN OR CPR.F_INI <= MAX(VAC.F_REG_R) and MAX(VAC.F_REG_R) <= CPR.F_FIN
- THEN (SELECT COUNT(F_NOHABIL) TOTAL FROM DNH WHERE CLASE=@CLASENOM AND F_NOHABIL BETWEEN MIN(F_SAL_R) AND MAX(F_REG_R) ) ELSE 0 END NOHABILES,
- SUM(DIAS_VAC) HABILES,
- ISNULL(CASE WHEN VAC.ESTADO <> '1' THEN CASE WHEN (SUM(VAC.DIAS_P - VAC.DIAS_T - VAC.DIAS_DIN)) > 0 THEN SUM((VAC.DIAS_P - VAC.DIAS_T - VAC.DIAS_DIN)) ELSE
- SUM((VAC.DIAS_P - VAC.DIAS_T - VAC.DIAS_DIN))*-1 END ELSE CASE WHEN SUM((VAC.DIAS_P - VAC.DIAS_T - VAC.DIAS_VAC - VAC.DIAS_DIN)) > 0 THEN
- SUM((VAC.DIAS_P - VAC.DIAS_T - VAC.DIAS_VAC - VAC.DIAS_DIN)) ELSE SUM((VAC.DIAS_P - VAC.DIAS_T - VAC.DIAS_VAC - VAC.DIAS_DIN)) * -1 END END,0) SALDO,
- convert(varchar, EMP.F_ANTIGUEDAD, 104) F_ANTIGUEDAD
- FROM VAC INNER JOIN EMP ON VAC.EMPLEADO=EMP.EMPLEADO
- INNER JOIN CPR ON VAC.ANOP+VAC.MESP+VAC.PRDP=CPR.ANO+CPR.MES+CPR.PERIODO AND EMP.TIPO_NOM+EMP.CLASE_NOM=CPR.TIPO_NOM+CPR.CLASE_NOM
- WHERE
- VAC.EMPLEADO='MA0909936' AND VAC.ANOP+VAC.MESP+VAC.PRDP > '' /*AND VAC.ESTADO='1'*/ AND VAC.ANOP+VAC.MESP+VAC.PRDP='20190623'
- GROUP BY vac.EMPLEADO,vac.ESTADO,EMP.F_ANTIGUEDAD,CPR.F_INI,CPR.F_FIN,F_SAL_R,F_REG_R,F_SAL_P ) VACACIONES GROUP BY ANO,EMPLEADO,ESTADO,F_ANTIGUEDAD
- SELECT * FROM EMP WHERE DOCTO_IDENT='1027961634'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement