Consulta

02/11/2005 - 20:48 por Julio | Informe spam
Hola grupo

Tengo la siguiente tabla

EntradaID EmpeladoID Movimiento Fecha Tipo resultado
1 1 Entrada 21/06/01 Contrato
21/06/01
2 1 Salida 15/12/02
Liquidacion 21/01/01
3 1 Entrada 30/12/02 Contrato
21/01/01
4 1 Salida 02/11/05 cancelado
21/01/01
5 1 Entrada 01/01/07 contratado
01/01/07
6 1 Salida 01/01/08 Renuncia
01/01/07
7 1 Entrada 01/01/09 contratado
01/01/09

Lo que necesito es saber la fecha que tiene el empelado en la empresa
partiendo de que:

Viendo los primeros tres ejemplo si el empelado fue contratado su fecha en
la empresa
es 21/06/01 despues fue liquidado la cual no se toma en cuenta, pero luego
fue contratado
y la fecha que tiene en la empresa es 21/06/01 ya que la liquidacion es de
la empresa y su tiempo
total se le reconoce.

Pero cuando el empleado es cancelado o renuncia y luego se contrata de nuevo
su fecha en la empresa
ya es cuando lo contratan no la primera que es 21/06/01.

Entonces l oque quiero es hacer una vista para todos los empelados para
luego con la fecha actual calcular el tiempo
que tiene en la empresa.

Gracias de antes manos.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
02/11/2005 - 21:50 | Informe spam
Trata:

use northwind
go

create table t1 (
EntradaID int not null primary key,
EmpleadoID int not null,
Movimiento varchar(25) not null,
Fecha datetime not null,
Tipo varchar(25) not null,
resultado datetime
)
go

insert into t1 values(1, 1, 'Entrada', '20010621', 'Contrato', '20010621')
insert into t1 values(2, 1, 'Salida', '20021215', 'Liquidacion', '20010121')
insert into t1 values(3, 1, 'Entrada', '20021230', 'Contrato', '20010121')
insert into t1 values(4, 1, 'Salida', '20051102', 'Cancelacion', '20010121')
insert into t1 values(5, 1, 'Entrada', '20070101', 'Contrato', '20070101')
insert into t1 values(6, 1, 'Salida', '20080101', 'Renuncia', '20070101')
insert into t1 values(7, 1, 'Entrada', '20090101', 'Contrato', '20090101')
go

select EmpleadoID, min(Fecha) as min_fecha
from t1 as a
where
Movimiento = 'Entrada'
and Tipo = 'Contrato'
and not exists (
select *
from t1 as b
where
b.entradaID > a.EntradaID
and Movimiento = 'Salida'
and Tipo in ('Cancelacion', 'Renuncia')
)
group by EmpleadoID
go

drop table t1
go


AMB

"Julio" wrote:

Hola grupo

Tengo la siguiente tabla

EntradaID EmpeladoID Movimiento Fecha Tipo resultado
1 1 Entrada 21/06/01 Contrato
21/06/01
2 1 Salida 15/12/02
Liquidacion 21/01/01
3 1 Entrada 30/12/02 Contrato
21/01/01
4 1 Salida 02/11/05 cancelado
21/01/01
5 1 Entrada 01/01/07 contratado
01/01/07
6 1 Salida 01/01/08 Renuncia
01/01/07
7 1 Entrada 01/01/09 contratado
01/01/09

Lo que necesito es saber la fecha que tiene el empelado en la empresa
partiendo de que:

Viendo los primeros tres ejemplo si el empelado fue contratado su fecha en
la empresa
es 21/06/01 despues fue liquidado la cual no se toma en cuenta, pero luego
fue contratado
y la fecha que tiene en la empresa es 21/06/01 ya que la liquidacion es de
la empresa y su tiempo
total se le reconoce.

Pero cuando el empleado es cancelado o renuncia y luego se contrata de nuevo
su fecha en la empresa
ya es cuando lo contratan no la primera que es 21/06/01.

Entonces l oque quiero es hacer una vista para todos los empelados para
luego con la fecha actual calcular el tiempo
que tiene en la empresa.

Gracias de antes manos.




Respuesta Responder a este mensaje
#2 Julio
03/11/2005 - 13:43 | Informe spam
Gracias Alejandro funciona bien


"Alejandro Mesa" wrote in message
news:
Trata:

use northwind
go

create table t1 (
EntradaID int not null primary key,
EmpleadoID int not null,
Movimiento varchar(25) not null,
Fecha datetime not null,
Tipo varchar(25) not null,
resultado datetime
)
go

insert into t1 values(1, 1, 'Entrada', '20010621', 'Contrato', '20010621')
insert into t1 values(2, 1, 'Salida', '20021215', 'Liquidacion',
'20010121')
insert into t1 values(3, 1, 'Entrada', '20021230', 'Contrato', '20010121')
insert into t1 values(4, 1, 'Salida', '20051102', 'Cancelacion',
'20010121')
insert into t1 values(5, 1, 'Entrada', '20070101', 'Contrato', '20070101')
insert into t1 values(6, 1, 'Salida', '20080101', 'Renuncia', '20070101')
insert into t1 values(7, 1, 'Entrada', '20090101', 'Contrato', '20090101')
go

select EmpleadoID, min(Fecha) as min_fecha
from t1 as a
where
Movimiento = 'Entrada'
and Tipo = 'Contrato'
and not exists (
select *
from t1 as b
where
b.entradaID > a.EntradaID
and Movimiento = 'Salida'
and Tipo in ('Cancelacion', 'Renuncia')
)
group by EmpleadoID
go

drop table t1
go


AMB

"Julio" wrote:

Hola grupo

Tengo la siguiente tabla

EntradaID EmpeladoID Movimiento Fecha Tipo
resultado
1 1 Entrada 21/06/01
Contrato
21/06/01
2 1 Salida 15/12/02
Liquidacion 21/01/01
3 1 Entrada 30/12/02
Contrato
21/01/01
4 1 Salida 02/11/05
cancelado
21/01/01
5 1 Entrada 01/01/07
contratado
01/01/07
6 1 Salida 01/01/08
Renuncia
01/01/07
7 1 Entrada 01/01/09
contratado
01/01/09

Lo que necesito es saber la fecha que tiene el empelado en la empresa
partiendo de que:

Viendo los primeros tres ejemplo si el empelado fue contratado su fecha
en
la empresa
es 21/06/01 despues fue liquidado la cual no se toma en cuenta, pero
luego
fue contratado
y la fecha que tiene en la empresa es 21/06/01 ya que la liquidacion es
de
la empresa y su tiempo
total se le reconoce.

Pero cuando el empleado es cancelado o renuncia y luego se contrata de
nuevo
su fecha en la empresa
ya es cuando lo contratan no la primera que es 21/06/01.

Entonces l oque quiero es hacer una vista para todos los empelados para
luego con la fecha actual calcular el tiempo
que tiene en la empresa.

Gracias de antes manos.




Respuesta Responder a este mensaje
#3 Julio
03/11/2005 - 13:55 | Informe spam
Otra cosa, como puedo saber cual es el tiempo del empelado despues de ser
liquidado, es decir ya tengo el tiempo total del empelado despues de ser
liquidado que es que es la primera fecha en caso de no haber sido cancelado
o por renuncia.

tiempoTotal tiempoDespuesLiquidado








"Julio" wrote in message
news:
Gracias Alejandro funciona bien


"Alejandro Mesa" wrote in
message news:
Trata:

use northwind
go

create table t1 (
EntradaID int not null primary key,
EmpleadoID int not null,
Movimiento varchar(25) not null,
Fecha datetime not null,
Tipo varchar(25) not null,
resultado datetime
)
go

insert into t1 values(1, 1, 'Entrada', '20010621', 'Contrato',
'20010621')
insert into t1 values(2, 1, 'Salida', '20021215', 'Liquidacion',
'20010121')
insert into t1 values(3, 1, 'Entrada', '20021230', 'Contrato',
'20010121')
insert into t1 values(4, 1, 'Salida', '20051102', 'Cancelacion',
'20010121')
insert into t1 values(5, 1, 'Entrada', '20070101', 'Contrato',
'20070101')
insert into t1 values(6, 1, 'Salida', '20080101', 'Renuncia', '20070101')
insert into t1 values(7, 1, 'Entrada', '20090101', 'Contrato',
'20090101')
go

select EmpleadoID, min(Fecha) as min_fecha
from t1 as a
where
Movimiento = 'Entrada'
and Tipo = 'Contrato'
and not exists (
select *
from t1 as b
where
b.entradaID > a.EntradaID
and Movimiento = 'Salida'
and Tipo in ('Cancelacion', 'Renuncia')
)
group by EmpleadoID
go

drop table t1
go


AMB

"Julio" wrote:

Hola grupo

Tengo la siguiente tabla

EntradaID EmpeladoID Movimiento Fecha Tipo resultado
1 1 Entrada 21/06/01 Contrato
21/06/01
2 1 Salida 15/12/02
Liquidacion 21/01/01
3 1 Entrada 30/12/02 Contrato
21/01/01
4 1 Salida 02/11/05
cancelado
21/01/01
5 1 Entrada 01/01/07
contratado
01/01/07
6 1 Salida 01/01/08
Renuncia
01/01/07
7 1 Entrada 01/01/09
contratado
01/01/09

Lo que necesito es saber la fecha que tiene el empelado en la empresa
partiendo de que:

Viendo los primeros tres ejemplo si el empelado fue contratado su fecha
en
la empresa
es 21/06/01 despues fue liquidado la cual no se toma en cuenta, pero
luego
fue contratado
y la fecha que tiene en la empresa es 21/06/01 ya que la liquidacion es
de
la empresa y su tiempo
total se le reconoce.

Pero cuando el empleado es cancelado o renuncia y luego se contrata de
nuevo
su fecha en la empresa
ya es cuando lo contratan no la primera que es 21/06/01.

Entonces l oque quiero es hacer una vista para todos los empelados para
luego con la fecha actual calcular el tiempo
que tiene en la empresa.

Gracias de antes manos.










Respuesta Responder a este mensaje
#4 Julio Ramos
03/11/2005 - 19:02 | Informe spam
Saludos

Hola alejandro o alquien que me pueda contestatr

En la consulta se me olvido que existe el empelado Temporero
que como movimiento para entrada el tipo sera temporero y el movimiento para
la salida el tipo sera expiracion_temporero
Ahora este empleado despues de tres meses para a ser contratado que de ahi
en adelante se comienza a contar.




"Julio" wrote in message
news:%23xUa$
Otra cosa, como puedo saber cual es el tiempo del empelado despues de ser
liquidado, es decir ya tengo el tiempo total del empelado despues de ser
liquidado que es que es la primera fecha en caso de no haber sido
cancelado o por renuncia.

tiempoTotal tiempoDespuesLiquidado








"Julio" wrote in message
news:
Gracias Alejandro funciona bien


"Alejandro Mesa" wrote in
message news:
Trata:

use northwind
go

create table t1 (
EntradaID int not null primary key,
EmpleadoID int not null,
Movimiento varchar(25) not null,
Fecha datetime not null,
Tipo varchar(25) not null,
resultado datetime
)
go

insert into t1 values(1, 1, 'Entrada', '20010621', 'Contrato',
'20010621')
insert into t1 values(2, 1, 'Salida', '20021215', 'Liquidacion',
'20010121')
insert into t1 values(3, 1, 'Entrada', '20021230', 'Contrato',
'20010121')
insert into t1 values(4, 1, 'Salida', '20051102', 'Cancelacion',
'20010121')
insert into t1 values(5, 1, 'Entrada', '20070101', 'Contrato',
'20070101')
insert into t1 values(6, 1, 'Salida', '20080101', 'Renuncia',
'20070101')
insert into t1 values(7, 1, 'Entrada', '20090101', 'Contrato',
'20090101')
go

select EmpleadoID, min(Fecha) as min_fecha
from t1 as a
where
Movimiento = 'Entrada'
and Tipo = 'Contrato'
and not exists (
select *
from t1 as b
where
b.entradaID > a.EntradaID
and Movimiento = 'Salida'
and Tipo in ('Cancelacion', 'Renuncia')
)
group by EmpleadoID
go

drop table t1
go


AMB

"Julio" wrote:

Hola grupo

Tengo la siguiente tabla

EntradaID EmpeladoID Movimiento Fecha Tipo resultado
1 1 Entrada 21/06/01 Contrato
21/06/01
2 1 Salida 15/12/02
Liquidacion 21/01/01
3 1 Entrada 30/12/02 Contrato
21/01/01
4 1 Salida 02/11/05
cancelado
21/01/01
5 1 Entrada 01/01/07
contratado
01/01/07
6 1 Salida 01/01/08
Renuncia
01/01/07
7 1 Entrada 01/01/09
contratado
01/01/09

Lo que necesito es saber la fecha que tiene el empelado en la empresa
partiendo de que:

Viendo los primeros tres ejemplo si el empelado fue contratado su fecha
en
la empresa
es 21/06/01 despues fue liquidado la cual no se toma en cuenta, pero
luego
fue contratado
y la fecha que tiene en la empresa es 21/06/01 ya que la liquidacion es
de
la empresa y su tiempo
total se le reconoce.

Pero cuando el empleado es cancelado o renuncia y luego se contrata de
nuevo
su fecha en la empresa
ya es cuando lo contratan no la primera que es 21/06/01.

Entonces l oque quiero es hacer una vista para todos los empelados para
luego con la fecha actual calcular el tiempo
que tiene en la empresa.

Gracias de antes manos.














email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida