SQL - media de la edad con la que los empleado ingresado en los ultimo 10 años

 
Vista:

media de la edad con la que los empleado ingresado en los ultimo 10 años

Publicado por carlos (6 intervenciones) el 31/01/2019 21:10:30
mi idea es esta
1
2
3
select nomem,avg(months_between,fecna)*12
from temple
where (months_between(sysdate,fecin)/12)<10;

nomem es nombre empleado
fecnan fecha nacimiento
fecin fecha de ingreso a la empresa
que esta mal?porque no me lo acepta?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.536
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

media de la edad con la que los empleado ingresado en los ultimo 10 años

Publicado por Isaias (1671 intervenciones) el 31/01/2019 23:42:22
¿En que motor de base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

media de la eddad con la que los empleado ingresado en los ultimo 10 años

Publicado por Carlos (6 intervenciones) el 01/02/2019 01:20:41
Oracle es en que utilizo supuse que al poner sql se daba por echo soy algo inexperto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 109
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

media de la edad con la que los empleado ingresado en los ultimo 10 años

Publicado por Rafael (111 intervenciones) el 01/02/2019 09:18:55
Hola

Primero algunos temas ... Si respondes esto ...
"Oracle es en que utilizo supuse que al poner sql se daba por echo soy algo inexperto"

NO, puedes suponer que se da por echo que seas inexperto por el nombre del FORO, una cosa no puede inferir la otra.
Disculpa si suena agresivo, pero no existe ningun vinculo entre una cosa y otra ...

Ahora el tema que te atañe...

1. El error
avg(months_between,fecna)*12

Esto tiene un error de sintaxis enorme, y de lógica mas ...
Sintáxis la funcion "months_between" no tiene los parentesis ni los valores asignados.
Logica has obtenido el numero de meses hay que DIVIDIRLO entre 12 no MUTIPLICAR.


2. La Edad de Ingreso
En principio lo que te piden es la edad que tenia el empleado cuando ENTRO no la actual. Por eso usaremos la fecha de nacimiento y la fecha de ingreso, para calcular la edad con la que el empleado a ingresado.
months_between(fecin, fecna)/12 ===>> esta seria la edad con la que ingreso ...

3. La media ...
avg(months_between(fecin, fecna)/12)

4. Los ultimos 10 años
Es correcto como lo has delimitado
where (months_between(sysdate,fecin)/12)<10;

Ahora todo junto:
1
2
3
select avg(months_between(fecin, fecna)/12)
from   temple
where  (months_between(sysdate,fecin)/12)<10;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

media de la edad con la que los empleado ingresado en los ultimo 10 años

Publicado por Carlos (6 intervenciones) el 01/02/2019 11:03:00
No te preocupes te doy la razón ni debería de suponer creí que era lo mismo.
Pues por alguna razón no me hace la media si le pongo algo más en el select
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar