Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Duda basica HAVING

Estas en el tema de Duda basica HAVING en el foro de Oracle en Foros del Web. Tengo un ejercicio que pide lo siguiente. Obtener el salario medio por departamento, solamente de aquellos departamentos donde haya trabajadores que cobran comisión, teniendo en ...
  #1 (permalink)  
Antiguo 29/12/2010, 10:38
 
Fecha de Ingreso: noviembre-2003
Mensajes: 82
Antigüedad: 21 años
Puntos: 0
Duda basica HAVING

Tengo un ejercicio que pide lo siguiente.

Obtener el salario medio por departamento, solamente de aquellos departamentos donde haya trabajadores que cobran comisión, teniendo en cuenta unicamente los empleados que lo cobran.

select avg(sal) from emp group by deptno having sum(comm)>0;


me da un resultado, pero no se si esta bien, algun experto me puede indicar si lo que he puesto tiene algo que ver con el ejercicio

gracias

por cierto pq si pongo esto

select avg(sal) from emp group by deptno having comm>0;

me da error, si es lo mismo sin el sum
  #2 (permalink)  
Antiguo 29/12/2010, 19:02
 
Fecha de Ingreso: diciembre-2010
Mensajes: 1
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Duda basica HAVING

ola,

respuesta a la primera duda:

el enunciado es un poco confuso o la respuesta un poco ambigua porque al utilizar la clausula 'having sum(comm) > 0' estas haciendo que con que exista un empleado que cobre comision se tenga en cuenta a todos los demas del departamento aunque no la cobren porque la suma de todas ellas será distinta de nulo.

me permito darte una alternativa que creo te deberia dar otro resultado que creo que es el válido:

select deptno , avg(sal) from emp where comision is not null group by dept



respuesta a la segunda duda:

select avg(sal) from emp group by deptno having comm>0; te da error porque si estas haciendo un agrupamiento por departamento , no puedes preguntar por el valor de un campo atómico sino por el de unha funcion que se pueda aplicar a todos los valores de dicho campo para cada departamento.

no soy un experto pero espero haberte podido ayudar

saludos
  #3 (permalink)  
Antiguo 30/12/2010, 05:24
 
Fecha de Ingreso: agosto-2004
Mensajes: 265
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: Duda basica HAVING

Muchas gracias por la respuesta

Creo que lo entiendo, pero es que cuanto mas leo el enunciado, mas me lia.

y tambien me has dejado clara la segunda duda.

un saludo
__________________
Recuerda que si señalas con el dedo, el resto de los dedos te señalan a ti!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:49.