Alertas de GTI

> 3 Hrs. al 50% x Día (7)

Esta alerta trae como resultado aquellos empleados que tienen, por día, más de una x cantidad de horas de un tipo a determinar.

Query - SQL

select adfecha as Fecha, adcanthoras as Horas, empleg as Legajo, terape as Apellido, ternom as Nombre
from gti_acumdiario inner join empleado on empleado.ternro = gti_acumdiario.ternro
where thnro = @@tipo de hora@@ and adcanthoras >= @@cantidad de horas@@ and empleado.empest = -1

Parámetros

Para configurar la cantidad de horas a partir de la cual se generará la alerta, siga la siguiente ruta: Alertas / Carga de Parámetros / Mas de X hs de tipo Y en el dia / Queries / Mas de X hs de tipo Y en el dia / Parámetros

  • Nombre: cantidad_de_horas, Valor: 3
  • Nombre: tipo_de_hora, Valor: 1

Más de X llegadas tarde (SQL Server) (8)

Esta alerta verifica aquellos empleados que tienen más de “X” cantidad de llegadas tarde.

Query - SQL

select empleado.empleg as Legajo, terape as Apellido, ternom as Nombre
from gti_acumdiario inner join empleado on empleado.ternro = gti_acumdiario.ternro
where thnro = @@tipo de hora@@ and adfecha >= @@fecha desde@@ and adfecha <= @@fecha hasta@@ and empleado.empest = -1
group by empleado.empleg, terape, ternom having count(empleado.empleg) >= @@veces tarde@@

Parámetros

Para configurar la cantidad de horas a partir de la cual se generará la alerta, siga la siguiente ruta: Alertas / Carga de Parámetros / Mas de X llegadas tarde / Queries / Mas de X llegadas tarde / Parámetros

  • Nombre: fecha_desde, Valor: 01/01/2003
  • Nombre: fecha_hasta, Valor: 31/12/2003
  • Nombre: tipo_de_hora, Valor: 1
  • Nombre: veces_tarde, Valor: 1

Horas Extras mult de 10 (SQLServer) (9)

Este alerta trae como resultado aquellas personas que tengan en el mes actual, una cantidad de horas mayor al número configurado en el parámetro múltiplo de un tipo de hora a configurar.

Query - SQL

select empleado.empleg as Legajo, terape as Apellido, ternom as Nombre, sum(adcanthoras) as HorasExtras, round(sum(adcanthoras) / @@multiplo@@,0, -1) as VecesMultiplo
from gti_acumdiario inner join empleado on empleado.ternro = gti_acumdiario.ternro
where thnro in (@@tipos de hora@@) and month(adfecha) = month(getdate()) and empleado.empest = -1
group by empleado.empleg, terape, ternom having sum(adcanthoras) >= @@multiplo@@

Parámetros

Para configurar los parámetros del alerta, siga la siguiente ruta: Alertas / Carga de Parámetros / Horas Extras mult de 10 (SQLServer) / Queries / Horas Extras mult de 10 (SQLServer) / Parámetros

  • Nombre: multiplo, Valor: 10
  • Nombre: tipos_de_hora, Valor: 1,2

Ausencia pasada 1 Hora (SQL Server) (10)

Este alerta trae como resultado, aquellas personas que no tienen registros en el día en que se genera la alerta.

Query - SQL

select empleado.empleg, empleado.terape, empleado.ternom
from gti_turforpago inner join gti_formapago on gti_turforpago.fpgonro = gti_formapago.fpgonro and gti_turforpago.turnro = @@turno@@ inner join gti_turfpgogru on gti_turforpago.turfpagnro = gti_turfpgogru.turfpagnro and gti_turfpgogru.fechavalidez <= getdate() inner join estructura on gti_turfpgogru.estrnro = estructura.estrnro inner join tipoestructura on gti_turfpgogru.tenro = tipoestructura.tenro inner join alcance_testr on gti_turfpgogru.tenro = alcance_testr.tenro and alcance_testr.tanro = 2 inner join his_estructura on gti_turfpgogru.estrnro = his_estructura.estrnro and (his_estructura.htetdesde <= getdate() and his_estructura.htethasta IS NULL or his_estructura.htetdesde <= getdate() and his_estructura.htethasta >= getdate()) inner join empleado on empleado.ternro = his_estructura.ternro
where NOT EXISTS (select regnro from gti_registracion where gti_registracion.ternro = empleado.ternro and day(regfecha) = day(getdate()) and month(regfecha) = month(getdate()) and year(regfecha) = year(getdate()))

Parámetros

Para configurar los parámetros del alerta, siga la siguiente ruta: Alertas / Carga de Parámetros / Empleados sin registraciones y con FP / Queries / Empleados sin registraciones y con FP / Parámetros

  • Nombre: turno, Valor: 21

Salida Anticipada (SQL Server) (11)

Este alerta trae un listado de los empleados que tienen registrada una salida temprano el día de hoy.

Query - SQL

select e.empleg Legajo, e.terape Apellido, e.ternom Nombre, g.adfecha Fecha, g.adcanthoras Cantidad
from empleado e, gti_acumdiario g
where e.ternro = g.ternro and g.thnro = @@TipoHora@@ and convert(date,g.adfecha) = convert(date,getdate()) and e.empest = -1

Parámetros

Para configurar los parámetros del alerta, siga la siguiente ruta: Alertas / Carga de Parámetros / Salida Anticipada (SQL Server) / Queries / Salida Anticipada (SQL Server) / Parámetros

  • Nombre: TipoHora, Valor: 10

Más de Nhs al X% por día. (26)

Este alerta trae como resultado aquellos empleados que en un día superen la cantidad de cierto tipo de hora.

Query - SQL

select e.empleg Legajo, e.terape Apellido, e.ternom Nombre, g.adfecha Fecha, g.adcanthoras Cantidad
from empleado e, gti_acumdiario g
where e.ternro = g.ternro and g.thnro = @@TipoHora@@ and g.adcanthoras > @@Cantidad@@ and e.empest = -1

Parámetros

Para configurar los parámetros del alerta, siga la siguiente ruta: Alertas / Carga de Parámetros / Más de Nhs al X% por día / Queries / Más de Nhs al X% por día / Parámetros

  • Nombre: Cantidad, Valor: 3
  • Nombre: TipoHora, Valor: 1

Empleados s/vacaciones p/período. (30)

Este alerta empleados sin vacaciones asignadas para un período determinado.

Query - SQL

select distinct vacacion.vacdesc Periodo, empleado.empleg Legajo, convert(varchar(60), case when empleado.terape is null) then ' ' else empleado.terape end + ' ' + case when empleado.terape2 is null) then ' ' else empleado.terape2 end + ' ' + case when (empleado.ternom is null) then ' ' else empleado.ternom end + ' ' + case when (empleado.ternom2 is null) then ' ' else empleado.ternom2 end) Apellido_y_Nombre, (select top 1 altfec from fases where fases.empleado = empleado.ternro order by altfec desc) Fecha_Alta
from vacdiascor
left join empleado on empleado.ternro not in (select distinct empleado.ternro from vacdiascor inner join vacacion on vacacion.vacnro = vacdiascor.vacnro inner join empleado on empleado.ternro = vacdiascor.ternro where vacacion.vacfecdesde <= getdate() and vacacion.vacfechasta >= getdate()) inner join vacacion on vacacion.vacnro = vacdiascor.vacnro where vacacion.vacfecdesde <= getdate() and vacacion.vacfechasta >= getdate() and empleado.empest = -1 order by empleado.empleg

Más de X Hs Llegadas Tarde (31)

Este alerta trae como resultado aquellos empleados que tienen más de x cantidad de llegadas tardes a partir de determinada fecha.

Query - SQL

select e.empleg Legajo, e.terape Apellido, e.ternom Nombre, g.adfecha Fecha, g.adcanthoras Cantidad
from empleado e, gti_acumdiario g
where e.ternro = g.ternro and g.thnro = 14 and g.adcanthoras > @@Cantidad@@ and g.adfecha = convert(date,getdate()) and e.empest = -1

Parámetros

Para configurar los parámetros del alerta, siga la siguiente ruta: Alertas / Carga de Parámetros / Más de X Hs Llegadas Tarde / Queries / Más de X Hs Llegadas Tarde / Parámetros

  • Nombre: Cantidad, Valor: 0

Más de X Hs salidas temprano. (32)

Este alerta trae como resultado aquellos empleados que tienen más de x cantidad de salidas tempranas a partir de determinada fecha.

Query - SQL

select e.empleg Legajo, e.terape Apellido, e.ternom Nombre, g.adfecha Fecha, g.adcanthoras Cantidad
from empleado e, gti_acumdiario g
where e.ternro = g.ternro and g.thnro = 15 and g.adcanthoras > @@Cantidad@@ and g.adfecha = convert(date,getdate()) and e.empest = -1

Parámetros

Para configurar los parámetros del alerta, siga la siguiente ruta: Alertas / Carga de Parámetros / Más de X Hs salidas temprano / Queries / Más de X Hs salidas temprano / Parámetros

  • Nombre: Cantidad, Valor: 1

Empleados sin acum. diario (SQLServer) (33)

Este alerta trae como resultado aquellas personas que tiene el proceso de horario cumplido (PRC30) y no tienen el proceso de acumulado diario (PCR01).

Query - SQL

select conccod Codigo, concabr Concepto, tc.tcondesc Tipo
from concepto co inner join tipconcep tc on tc.tconnro = co.tconnro
where co.tconnro in (@@tipoconceptos@@) and concimp = -1 and concnro not in (select concnro from con_acum where acunro in (@@acumuladores@@))

Sumatoria de Tipos de Horas. (34)

Este alerta trae como resultado los empleados que en determinado tipo de hora superan “X” cantidad de horas a partir de determinada fecha.

Query - SQL

select E.empleg Legajo, E.terape Apellido, E.ternom Nombre, sum(A.adcanthoras) SumaHoras, A.thnro, t.thdesc
from empleado E, gti_acumdiario A , tiphora T
where E.ternro = A.ternro and A.thnro = t.thnro and A.thnro = @@Thora@@ and e.empest = -1
group by E.empleg, E.terape, E.ternom, A.thnro, T.thdesc having sum(A.adcanthoras) > @@Cant@@

Parámetros

Para configurar los parámetros del alerta, siga la siguiente ruta: Alertas / Carga de Parámetros / Sumatoria de Tipos de Horas / Queries / Sumatoria de Tipos de Horas / Parámetros

  • Nombre: Cant, Valor: 50
  • Nombre: Thora, Valor: 20

Vales Pendientes (36)

Este alerta trae un listado de empleados con vales pendientes.

Query - SQL

select distinct(valnro) VALE, valfecped FECHA, terape APELLIDO, ternom NOMBRE
from vales v inner join tipovale tp on tp.tvalenro = tp.tvalenro inner join empleado e on e.ternro = v.empleado
where v.valrevis = 0

Licencias Pendientes (45)

Este alerta busca las licencias de los empleados activos que sucederán en los próximos “X” días.

Query - SQL

select e.empleg Legajo, e.terape Apellido, e.ternom Nombre, l.elfechahasta FechaHasta, datediff(day, getdate(), elfechahasta) VenceDentroDe, t.tddesc TipoLicencia
from empleado e, emp_lic l, tipdia t
where e.ternro = l.empleado and l.tdnro = t.tdnro and datediff(day, getdate(), elfechahasta) <= @@Dias@@ and datediff(day, getdate(), elfechahasta) > 0 AND e.empest= -1

Parámetros

Para configurar los parámetros del alerta, siga la siguiente ruta: Alertas / Carga de Parámetros / Licencias Pendientes / Queries / Licencias Pendientes / Parámetros

  • Nombre: Dias, Valor: 15

Licencias (49)

Este alerta busca los empleados que no tienen cargadas licencias ni están dentro de un parte sin novedad entre una fecha y el día de hoy.

Query - SQL

select empleg Legajo, terape Apellido, ternom Nombre
from empleado
where empest = -1 and ternro not in (select ternro from his_estructura where estrnro in (select estrnro from gti_snov where (snovfecdesde <= @@fecha_desde@@ and (snovfechasta >= getdate() or snovfechasta is null)) or (snovfecdesde >= @@fecha_desde@@ and snovfecdesde <= getdate()) or (snovfechasta >= @@fecha_desde@@ and snovfechasta<= getdate())) and ((htetdesde <= @@fecha_desde@@ and (htethasta >= getdate() or htethasta is null)) or htetdesde >= @@fecha_desde@@) and htetdesde <= getdate()) or (htethasta >= @@fecha_desde@@ and htethasta <= getdate())) and ternro not in  (select emp_lic.empleado from emp_lic where ((elfechadesde <= @@fecha_desde@@ and (elfechahasta > getdate() or elfechahasta is null)) or (elfechadesde >= @@fecha_desde@@ and elfechadesde <= getdate()) or (elfechahasta >= @@fecha_desde@@ and elfechahasta <= getdate())))

Parámetros

Para configurar los parámetros del alerta, siga la siguiente ruta: Alertas / Carga de Parámetros / Licencias / Queries / Licencias / Parámetros

  • Nombre: fecha_desde, Valor: 01/01/2014

Price – Interfaces Planificadas (58)

Este alerta busca los empleados que no tienen cargadas licencias ni están dentro de un parte sin novedad entre una fecha y el día de hoy.

Query - SQL

select *
from batch_procplan
where btprcnro=23

Pedidos de vacaciones pendientes (61)

Este alerta muestra un listado de todos los pedidos de vacaciones pendientes de aprobación.

Query - SQL

select e.empleg Legajo, e.terape Apellido, e.ternom Nombre, vp.vdiapeddesde FechaDesde, vp.vdiapedhasta FechaHasta
from vacdiasped vp inner join empleado e on e.ternro = vp.ternro and vp.vdiaspedestado = 0

Licencias Pendientes (todas) (62)

Este alerta muestra un listado de todas las licencias pendientes.

Query - SQL

select e.empleg Legajo, e.terape Apellido, e.ternom Nombre, l.elfechadesde FechaDesde, l.elfechahasta FechaHasta, t.tddesc TipoLicencia
from empleado e, emp_lic l, tipdia t
where e.ternro = l.empleado and l.tdnro = t.tdnro and e.empest= -1 and licestnro = 1

Horas extras pendientes de autorización (113)

Este alerta informa aquellos empleados que tienen horas extras pendientes de autorizar.

Query - SQL

select empleado.empleg LEGAJO, empleado.ternom + ' ' + empleado.ternom2 + ', ' + empleado.terape + ' ' + empleado.terape2 NOMBRE, convert(date, gti.horfecrep) FECHA, gti.horas HORAS, tiphora.thdesc TIPO_HORA, gti.thnro TIP_HORA_NRO
from empleado
inner join gti_horcumplido gti on gti.ternro = empleado.ternro
inner join tiphora on tiphora.thnro = gti.thnro
where gti.horfecrep = convert(date, getdate()) and gti.thnro in (@@TipoHora@@)
order by empleado.empleg asc

Licencias de vacaciones pendientes de autorización (114)

Este alerta muestra una lista de empleados con licencias de vacaciones que están en estado pendiente.

Query - SQL

select empleado.empleg LEGAJO, empleado.ternom + ' ' + empleado.ternom2 + ', ' + empleado.terape + ' ' + empleado.terape2 NOMBRE, elfechadesde DESDE, elfechahasta HASTA, elcantdias CANT_DIAS, tipdia.tddesc TIPO_LICENCIA, lic_estado.licestdesabr ESTADO
from emp_lic
inner join empleado on empleado.ternro = emp_lic.empleado
inner join tipdia on tipdia.tdnro = emp_lic.tdnro
inner join lic_estado on lic_estado.licestnro = emp_lic.licestnro
where emp_lic.licestnro =1 and emp_lic.tdnro = 2
order by empleado.empleg, elfechadesde asc

Lic. por Enf. ant.<5 s/c.fam dt90 (126)

Este alerta muestra una lista de los empleados cuya antigüedad sea menor a 5 años, no tenga familiares como carga de familia y los días acumulados en los últimos dos años por licencia por enfermedad con una determinada visita estén a “X” días.

Query - SQL

select empleado [Legajo], vismeddesc [Diagnostico], cargafamilia [Carga de Familia], Antiguedad, diasTomados [Dias Tomados], 90 Vencimiento   
from (select empleado, visitamed, (case when (select count(*) from familiar where cargaFamilia = -1 and famest = -1 and familiar.empleado = emp_lic.empleado) > 0 then 'SI' else 'NO' end) cargafamilia, (select sum(datediff(day, altfec, case when (bajfec is null) then getdate() when (bajfec is not null) then bajfec end)) / 365 from fases where real = -1 and fases.empleado = emp_lic.empleado) Antiguedad, sum(case when (elfechahasta < dateadd(year, -2, getdate()) and elfechadesde >= getdate()) then 0 when (elfechahasta <= getdate() and elfechadesde >= dateadd(year, -2, getdate())) then elcantdias when (elfechahasta > getdate() and elfechadesde >= dateadd(year, -2, getdate())) then datediff(day, elfechadesde, elfechahasta) when (elfechadesde < dateadd(year, -2, getdate()) and elfechahasta >= dateadd(year, -2, getdate())) then datediff(day, dateadd(year, -2, getdate()), elfechahasta) when (elfechadesde < dateadd(year, -2, getdate()) and elfechahasta >= getdate()) then datediff(day, dateadd(year, -2, getdate()), getdate()) else 0 end) diasTomados from emp_lic inner join licencia_visita on emp_lic.emp_licnro = licencia_visita.emp_licnro where tdnro = 8 and (select sum(datediff(day, altfec, case when (bajfec is null) then getdate() when (bajfec is not null) then bajfec end)) / 365 from fases where real = -1 and fases.empleado = emp_lic.empleado) < 5 and (select count(*) from familiar where cargaFamilia = -1 and famest = -1 and familiar.empleado = emp_lic.empleado) = 0 group by empleado, visitamed) aa
inner join sovisitamedica on aa.visitamed = sovisitamedica.vismednro  
where diasTomados + @@DiasAviso@@ >= 90

Lic. por Enf. ant.<5 c/c.fam dt180 (127)

Este alerta muestra una lista de los empleados cuya antigüedad sea menor a 5 años, sí tenga familiares como carga de familia y los días acumulados en los últimos dos años por licencia por enfermedad con una determinada visita estén a X días de llegar a 180.

Query - SQL

select empleado [Legajo], vismeddesc [Diagnostico], cargafamilia [Carga de Familia], Antiguedad, diasTomados [Dias Tomados], 180 Vencimiento   
from (select empleado, visitamed, (case when (select count(*) from familiar where cargaFamilia = -1 and famest = -1 and familiar.empleado = emp_lic.empleado) > 0 then 'SI' else 'NO' end) cargafamilia, (select sum(datediff(day, altfec, case when (bajfec is null) then getdate() when (bajfec is not null) then bajfec end)) / 365 from fases where real = -1 and fases.empleado = emp_lic.empleado) Antiguedad, sum(case when (elfechahasta < dateadd(year, -2, getdate()) and elfechadesde >= getdate()) then 0 when (elfechahasta <= getdate() and elfechadesde >= dateadd(year, -2, getdate())) then elcantdias when (elfechahasta > getdate() and elfechadesde >= dateadd(year, -2, getdate())) then datediff(day, elfechadesde, elfechahasta) when (elfechadesde < dateadd(year, -2, getdate()) and elfechahasta >= dateadd(year, -2, getdate())) then datediff(day, dateadd(year, -2, getdate()), elfechahasta) when (elfechadesde < dateadd(year, -2, getdate()) and elfechahasta >= getdate()) then datediff(day, dateadd(year, -2, getdate()), getdate()) else 0 end) diasTomados from emp_lic inner join licencia_visita on emp_lic.emp_licnro = licencia_visita.emp_licnro where tdnro = 8 and (select sum(datediff(day, altfec, case when (bajfec is null) then getdate() when (bajfec is not null) then bajfec end)) / 365 from fases where real = -1 and fases.empleado = emp_lic.empleado) < 5 and (select count(*) from familiar where cargaFamilia = -1 and famest = -1 and familiar.empleado = emp_lic.empleado) > 0 group by empleado, visitamed) aa inner join sovisitamedica on aa.visitamed = sovisitamedica.vismednro  
where diasTomados + @@DiasAviso@@ >= 180

Lic. por Enf. ant.>5 s/c.fam dt180 (128)

Este alerta muestra una lista de los empleados cuya antigüedad sea mayor a 5 años, no tenga familiares como carga de familia y los días acumulados en los últimos dos años por licencia por enfermedad con una determinada visita estén a X días de llegar a 180.

Query - SQL

select empleado [Legajo], vismeddesc [Diagnostico], cargafamilia [Carga de Familia], Antiguedad, diasTomados [Dias Tomados], 180 Vencimiento   
from (select empleado, visitamed, (case when (select count(*) from familiar where cargaFamilia = -1 and famest = -1 and familiar.empleado = emp_lic.empleado) > 0 then 'SI' else 'NO' end) cargafamilia, (select sum(datediff(day, altfec, case when (bajfec is null) then getdate() when (bajfec is not null) then bajfec end)) / 365 from fases where real = -1 and fases.empleado = emp_lic.empleado) Antiguedad, sum(case when (elfechahasta < dateadd(year, -2, getdate()) and elfechadesde >= getdate()) then 0 when (elfechahasta <= getdate() and elfechadesde >= dateadd(year, -2, getdate())) then elcantdias when (elfechahasta > getdate() and elfechadesde >= dateadd(year, -2, getdate())) then datediff(day, elfechadesde, elfechahasta) when (elfechadesde < dateadd(year, -2, getdate()) and elfechahasta >= dateadd(year, -2, getdate())) then datediff(day, dateadd(year, -2, getdate()), elfechahasta) when (elfechadesde < dateadd(year, -2, getdate()) and elfechahasta >= getdate()) then datediff(day, dateadd(year, -2, getdate()), getdate()) else 0 end) diasTomados from emp_lic inner join licencia_visita on emp_lic.emp_licnro = licencia_visita.emp_licnro where tdnro = 8 and (select sum(datediff(day, altfec, case when (bajfec is null) then getdate() when (bajfec is not null) then bajfec end)) / 365 from fases where real = -1 and fases.empleado = emp_lic.empleado) > 5 and (select count(*) from familiar where cargaFamilia = -1 and famest = -1 and familiar.empleado = emp_lic.empleado) = 0 group by empleado, visitamed) aa
inner join sovisitamedica on aa.visitamed = sovisitamedica.vismednro  
where diasTomados + @@DiasAviso@@ >= 180

Lic. por Enf. Ant.>5 c/c.fam dt360 (129)

Este alerta muestra una lista de los empleados cuya antigüedad sea mayor a 5 años, sí tenga familiares como carga de familia y los días acumulados en los últimos dos años por licencia por enfermedad con una determinada visita estén a X días de llegar a 360.

Query - SQL

select empleado [Legajo], vismeddesc [Diagnostico], cargafamilia [Carga de Familia], Antiguedad, diasTomados [Dias Tomados], 360 Vencimiento   
from (select empleado, visitamed, (case when (select count(*) from familiar where cargaFamilia = -1 and famest = -1 and familiar.empleado = emp_lic.empleado) > 0 then 'SI' else 'NO' end) cargafamilia, (select sum(datediff(day, altfec, case when (bajfec is null) then getdate() when (bajfec is not null) then bajfec end)) / 365 from fases where real = -1 and fases.empleado = emp_lic.empleado) Antiguedad, sum(case when (elfechahasta < dateadd(year, -2, getdate()) and elfechadesde >= getdate()) then 0 when (elfechahasta <= getdate() and elfechadesde >= dateadd(year, -2, getdate())) then elcantdias when (elfechahasta > getdate() and elfechadesde >= dateadd(year, -2, getdate())) then datediff(day, elfechadesde, elfechahasta) when (elfechadesde < dateadd(year, -2, getdate()) and elfechahasta >= dateadd(year, -2, getdate())) then datediff(day, dateadd(year, -2, getdate()), elfechahasta) when (elfechadesde < dateadd(year, -2, getdate()) and elfechahasta >= getdate()) then datediff(day, dateadd(year, -2, getdate()), getdate()) else 0 end) diasTomados from emp_lic inner join licencia_visita on emp_lic.emp_licnro = licencia_visita.emp_licnro where tdnro = 8 and (select sum(datediff(day, altfec, case when (bajfec is null) then getdate() when (bajfec is not null) then bajfec end)) / 365 from fases where real = -1 and fases.empleado = emp_lic.empleado) > 5 and (select count(*) from familiar where cargaFamilia = -1 and famest = -1 and familiar.empleado = emp_lic.empleado) > 0 group by empleado, visitamed) aa
inner join sovisitamedica on aa.visitamed = sovisitamedica.vismednro  
where diasTomados + @@DiasAviso@@ >= 360  

Empleados con mas de 10 años de antiguedad con trabajo anterior (130)

Este alerta avisa a RRHH, cuando una persona tiene fase anterior, con tilde en vacaciones (fecha de alta reconocida para vacaciones), y la fecha de alta de esa fase (incluyendo la fase actual), lo está haciendo cumplir 10 años de antigüedad a fin del año en curso.

Query - SQL

select empleg Legajo, isnull(terape, ' ') + ' ' + isnull(terape2, ' ') + ', ' + isnull(ternom, ' ') + ' ' + isnull(ternom2, ' ') ApelidoyNombre, sum(datediff(d, altfec, (case when bajfec is null then dateadd(d, -1, '01/01/' + cast(year(getdate()) + 1 as varchar(4))) else bajfec end)))/365 AntiguedadAños
from fases
inner join empleado on fases.empleado = empleado.ternro and empest = -1
where empleado in (select empleado from fases inner join causa on fases.caunro = causa.caunro and caudes = @@Descripcion Causa@@)
group by empleg, terape, terape2, ternom, ternom2, vacaciones
having (sum(datediff(d, altfec, (case when bajfec is null then dateadd(d, -1, '01/01/' + cast(year(getdate()) + 1 as varchar(4))) else bajfec end)))/365)>=10 and vacaciones = -1
Ir arriba ↑

Etiquetas:

Actualizado: