Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1.  
  2. DECLARE @TIPOVSY VARCHAR(4) SET @TIPOVSY=(SELECT TOP 1 MNJ_VACAC FROM VSY)
  3. DECLARE @CLASENOM VARCHAR(4)
  4. SET @CLASENOM=(
  5. 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'),'')
  6. WHEN @TIPOVSY ='E' THEN ISNULL((SELECT EMP.CLASE_VAC FROM EMP,TVA WHERE EMP.CLASE_VAC=TVA.CLASE AND EMP.EMPLEADO='MA0909936'),'')
  7. ELSE ISNULL((SELECT TOP 1 CLASE_NOM FROM CNM ),'') END)
  8.  
  9. 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,
  10. 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,
  11. 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,
  12. 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
  13. FROM (
  14. SELECT '' ANO,VAC.EMPLEADO,VAC.ESTADO, F_SAL_P, F_SAL_R,VAC.F_REG_R,CPR.F_INI,CPR.F_FIN,
  15. DATEDIFF(DAY,F_SAL_R,F_REG_R) DISFRUTADOS,
  16. F_REG_R REGRESO,ISNULL(sum(DIAS_T),0) DIAS_TOMADOS,ISNULL(sum(DIAS_DIN + DIAS_DINERO),0) DIAS_DINERO ,
  17. 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
  18. 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,
  19. SUM(DIAS_VAC) HABILES,
  20. 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
  21. 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
  22. 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,
  23. convert(varchar, EMP.F_ANTIGUEDAD, 104) F_ANTIGUEDAD
  24. FROM VAC INNER JOIN EMP ON VAC.EMPLEADO=EMP.EMPLEADO
  25. 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
  26. WHERE
  27. VAC.EMPLEADO='MA0909936' AND VAC.ANOP+VAC.MESP+VAC.PRDP > '' /*AND VAC.ESTADO='1'*/ AND VAC.ANOP+VAC.MESP+VAC.PRDP='20190623'
  28. 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
  29.  
  30.  
  31. SELECT * FROM EMP WHERE DOCTO_IDENT='1027961634'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement