select?

22/12/2004 - 13:29 por Joan Q. | Informe spam
Hola a todos/as

Tengo 2 tablas: cotizacionmensual y trabajadores



Cada mes determinados trabajadores generan una nómina en funcion de los dias
de alta asumiendo que todos los meses tiene 30 días.



Necesito saber cuantos dias cotizados en el año de manera que si generan 360
dias = todo el año de alta, però si es inferior a 360, debo sumar todas las
fracciones para redondear en función de un determinado parámetro a
trabajadores completos



Si hago



select trabajadores.cod_trabajador, cotizacionmensual.fechapaga,
cotizacionmensual.diascotizados



from cotizacionmensual



inner join trabajadores

on cotizacionmensual.codigoempresa = trabajadores.codigoempresa

and cotizacionmensual.cod_trabajador = trabajadores.cod_trabajador



where diascotizados.fechapaga between '20040101' and '20041231'



group by trabajadores.cod_trabajador, cotizacionmensual.fecgapaga,
cotizacionmensual.diascotizados



compute sum(cotizacionmensual.diascotizados) by trabajadores.cod_trabajador



tengo las sumas de los días pero no se cómo aislar los que me dan = 360 de
los que me dan < 360

Preguntas similare

Leer las respuestas

#1 Tako
22/12/2004 - 13:44 | Informe spam
Modo fácil, esto te da los que son igual a 360

select a.*
from (select... -tu consulta- ) a
where a.diascotizados = 360

Joan Q. wrote:
Hola a todos/as

Tengo 2 tablas: cotizacionmensual y trabajadores



Cada mes determinados trabajadores generan una nómina en funcion de
los dias de alta asumiendo que todos los meses tiene 30 días.



Necesito saber cuantos dias cotizados en el año de manera que si
generan 360 dias = todo el año de alta, però si es inferior a 360,
debo sumar todas las fracciones para redondear en función de un
determinado parámetro a trabajadores completos



Si hago



select trabajadores.cod_trabajador, cotizacionmensual.fechapaga,
cotizacionmensual.diascotizados



from cotizacionmensual



inner join trabajadores

on cotizacionmensual.codigoempresa = trabajadores.codigoempresa

and cotizacionmensual.cod_trabajador = trabajadores.cod_trabajador



where diascotizados.fechapaga between '20040101' and '20041231'



group by trabajadores.cod_trabajador, cotizacionmensual.fecgapaga,
cotizacionmensual.diascotizados



compute sum(cotizacionmensual.diascotizados) by
trabajadores.cod_trabajador



tengo las sumas de los días pero no se cómo aislar los que me dan > 360 de los que me dan < 360
Respuesta Responder a este mensaje
#2 Joan Q.
22/12/2004 - 14:05 | Informe spam
Gracias por responder. Creo que me he explicado mal.
El total de días cotizados me los da compute
sum(cotizacionmensual.diascotizados) by trabajadores.codigotrabajador
que los saca del where cotizacionmensual.fechapaga sean todas las generadas
en el año 2004. La cuestión es que en el select no puedo utilizar el
resultado del compute sum() by trabajador. ¿O si es sí, cómo?
Joan Q

"Tako" escribió en el mensaje
news:%

Modo fácil, esto te da los que son igual a 360

select a.*
from (select... -tu consulta- ) a
where a.diascotizados = 360

Joan Q. wrote:
> Hola a todos/as
>
> Tengo 2 tablas: cotizacionmensual y trabajadores
>
>
>
> Cada mes determinados trabajadores generan una nómina en funcion de
> los dias de alta asumiendo que todos los meses tiene 30 días.
>
>
>
> Necesito saber cuantos dias cotizados en el año de manera que si
> generan 360 dias = todo el año de alta, però si es inferior a 360,
> debo sumar todas las fracciones para redondear en función de un
> determinado parámetro a trabajadores completos
>
>
>
> Si hago
>
>
>
> select trabajadores.cod_trabajador, cotizacionmensual.fechapaga,
> cotizacionmensual.diascotizados
>
>
>
> from cotizacionmensual
>
>
>
> inner join trabajadores
>
> on cotizacionmensual.codigoempresa = trabajadores.codigoempresa
>
> and cotizacionmensual.cod_trabajador = trabajadores.cod_trabajador
>
>
>
> where diascotizados.fechapaga between '20040101' and '20041231'
>
>
>
> group by trabajadores.cod_trabajador, cotizacionmensual.fecgapaga,
> cotizacionmensual.diascotizados
>
>
>
> compute sum(cotizacionmensual.diascotizados) by
> trabajadores.cod_trabajador
>
>
>
> tengo las sumas de los días pero no se cómo aislar los que me dan > > 360 de los que me dan < 360



Respuesta Responder a este mensaje
#3 Maxi
22/12/2004 - 17:09 | Informe spam
Hola, y para que buscas usar ese valor en el Select?


Salu2
Maxi


"Joan Q." escribió en el mensaje
news:
Gracias por responder. Creo que me he explicado mal.
El total de días cotizados me los da compute
sum(cotizacionmensual.diascotizados) by trabajadores.codigotrabajador
que los saca del where cotizacionmensual.fechapaga sean todas las
generadas
en el año 2004. La cuestión es que en el select no puedo utilizar el
resultado del compute sum() by trabajador. ¿O si es sí, cómo?
Joan Q

"Tako" escribió en el mensaje
news:%

Modo fácil, esto te da los que son igual a 360

select a.*
from (select... -tu consulta- ) a
where a.diascotizados = 360

Joan Q. wrote:
> Hola a todos/as
>
> Tengo 2 tablas: cotizacionmensual y trabajadores
>
>
>
> Cada mes determinados trabajadores generan una nómina en funcion de
> los dias de alta asumiendo que todos los meses tiene 30 días.
>
>
>
> Necesito saber cuantos dias cotizados en el año de manera que si
> generan 360 dias = todo el año de alta, però si es inferior a 360,
> debo sumar todas las fracciones para redondear en función de un
> determinado parámetro a trabajadores completos
>
>
>
> Si hago
>
>
>
> select trabajadores.cod_trabajador, cotizacionmensual.fechapaga,
> cotizacionmensual.diascotizados
>
>
>
> from cotizacionmensual
>
>
>
> inner join trabajadores
>
> on cotizacionmensual.codigoempresa = trabajadores.codigoempresa
>
> and cotizacionmensual.cod_trabajador = trabajadores.cod_trabajador
>
>
>
> where diascotizados.fechapaga between '20040101' and '20041231'
>
>
>
> group by trabajadores.cod_trabajador, cotizacionmensual.fecgapaga,
> cotizacionmensual.diascotizados
>
>
>
> compute sum(cotizacionmensual.diascotizados) by
> trabajadores.cod_trabajador
>
>
>
> tengo las sumas de los días pero no se cómo aislar los que me dan >> > 360 de los que me dan < 360







Respuesta Responder a este mensaje
#4 Joan Q.
23/12/2004 - 09:35 | Informe spam
Gracias por contestar Maxi.
No es que lo busque usar en select. Pido si hay alguna manera de poder
utilizar el valor del compute (sum) by trabajador para dividir los
trabajadores en 2 grupos: los que tienen 360 días cotizados y los que no los
tienen. Los que tienen 360 días cotizados se equiparan a valor 1, los que no
tiene los 360 días van sumando los días y cada fracción de 200 días también
se equipara a valor 2.
Joan Q
"Maxi" escribió en el mensaje
news:%
Hola, y para que buscas usar ese valor en el Select?


Salu2
Maxi


"Joan Q." escribió en el mensaje
news:
> Gracias por responder. Creo que me he explicado mal.
> El total de días cotizados me los da compute
> sum(cotizacionmensual.diascotizados) by trabajadores.codigotrabajador
> que los saca del where cotizacionmensual.fechapaga sean todas las
> generadas
> en el año 2004. La cuestión es que en el select no puedo utilizar el
> resultado del compute sum() by trabajador. ¿O si es sí, cómo?
> Joan Q
>
> "Tako" escribió en el mensaje
> news:%
>>
>> Modo fácil, esto te da los que son igual a 360
>>
>> select a.*
>> from (select... -tu consulta- ) a
>> where a.diascotizados = 360
>>
>> Joan Q. wrote:
>> > Hola a todos/as
>> >
>> > Tengo 2 tablas: cotizacionmensual y trabajadores
>> >
>> >
>> >
>> > Cada mes determinados trabajadores generan una nómina en funcion de
>> > los dias de alta asumiendo que todos los meses tiene 30 días.
>> >
>> >
>> >
>> > Necesito saber cuantos dias cotizados en el año de manera que si
>> > generan 360 dias = todo el año de alta, però si es inferior a 360,
>> > debo sumar todas las fracciones para redondear en función de un
>> > determinado parámetro a trabajadores completos
>> >
>> >
>> >
>> > Si hago
>> >
>> >
>> >
>> > select trabajadores.cod_trabajador, cotizacionmensual.fechapaga,
>> > cotizacionmensual.diascotizados
>> >
>> >
>> >
>> > from cotizacionmensual
>> >
>> >
>> >
>> > inner join trabajadores
>> >
>> > on cotizacionmensual.codigoempresa = trabajadores.codigoempresa
>> >
>> > and cotizacionmensual.cod_trabajador = trabajadores.cod_trabajador
>> >
>> >
>> >
>> > where diascotizados.fechapaga between '20040101' and '20041231'
>> >
>> >
>> >
>> > group by trabajadores.cod_trabajador, cotizacionmensual.fecgapaga,
>> > cotizacionmensual.diascotizados
>> >
>> >
>> >
>> > compute sum(cotizacionmensual.diascotizados) by
>> > trabajadores.cod_trabajador
>> >
>> >
>> >
>> > tengo las sumas de los días pero no se cómo aislar los que me dan > >> > 360 de los que me dan < 360
>>
>>
>>
>
>


Respuesta Responder a este mensaje
#5 Maxi
23/12/2004 - 13:40 | Informe spam
Hola, podrias usarlo si por ej aplicas una tabla derivada

ej:

select t1.campos,t2.valor.cponpute from t1 inner join (select
campoid,valorcponpute from tabla2) t2 on
t2.campoid = t1.campoid

Este tipo de query te puede ayudar


Salu2
Maxi


"Joan Q." escribió en el mensaje
news:
Gracias por contestar Maxi.
No es que lo busque usar en select. Pido si hay alguna manera de poder
utilizar el valor del compute (sum) by trabajador para dividir los
trabajadores en 2 grupos: los que tienen 360 días cotizados y los que no
los
tienen. Los que tienen 360 días cotizados se equiparan a valor 1, los que
no
tiene los 360 días van sumando los días y cada fracción de 200 días
también
se equipara a valor 2.
Joan Q
"Maxi" escribió en el mensaje
news:%
Hola, y para que buscas usar ese valor en el Select?


Salu2
Maxi


"Joan Q." escribió en el mensaje
news:
> Gracias por responder. Creo que me he explicado mal.
> El total de días cotizados me los da compute
> sum(cotizacionmensual.diascotizados) by trabajadores.codigotrabajador
> que los saca del where cotizacionmensual.fechapaga sean todas las
> generadas
> en el año 2004. La cuestión es que en el select no puedo utilizar el
> resultado del compute sum() by trabajador. ¿O si es sí, cómo?
> Joan Q
>
> "Tako" escribió en el mensaje
> news:%
>>
>> Modo fácil, esto te da los que son igual a 360
>>
>> select a.*
>> from (select... -tu consulta- ) a
>> where a.diascotizados = 360
>>
>> Joan Q. wrote:
>> > Hola a todos/as
>> >
>> > Tengo 2 tablas: cotizacionmensual y trabajadores
>> >
>> >
>> >
>> > Cada mes determinados trabajadores generan una nómina en funcion de
>> > los dias de alta asumiendo que todos los meses tiene 30 días.
>> >
>> >
>> >
>> > Necesito saber cuantos dias cotizados en el año de manera que si
>> > generan 360 dias = todo el año de alta, però si es inferior a 360,
>> > debo sumar todas las fracciones para redondear en función de un
>> > determinado parámetro a trabajadores completos
>> >
>> >
>> >
>> > Si hago
>> >
>> >
>> >
>> > select trabajadores.cod_trabajador, cotizacionmensual.fechapaga,
>> > cotizacionmensual.diascotizados
>> >
>> >
>> >
>> > from cotizacionmensual
>> >
>> >
>> >
>> > inner join trabajadores
>> >
>> > on cotizacionmensual.codigoempresa = trabajadores.codigoempresa
>> >
>> > and cotizacionmensual.cod_trabajador = trabajadores.cod_trabajador
>> >
>> >
>> >
>> > where diascotizados.fechapaga between '20040101' and '20041231'
>> >
>> >
>> >
>> > group by trabajadores.cod_trabajador, cotizacionmensual.fecgapaga,
>> > cotizacionmensual.diascotizados
>> >
>> >
>> >
>> > compute sum(cotizacionmensual.diascotizados) by
>> > trabajadores.cod_trabajador
>> >
>> >
>> >
>> > tengo las sumas de los días pero no se cómo aislar los que me dan >> >> > 360 de los que me dan < 360
>>
>>
>>
>
>






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