Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/01/2014, 21:42
l222p
 
Fecha de Ingreso: julio-2010
Mensajes: 191
Antigüedad: 14 años, 5 meses
Puntos: 2
Proceso almacenado con un Case

El enunciado es este:
"HACER UN PROCESO ALMACENADO QUE MUESTRE
LA INFORMACION DE LOS LIBROS NOMBRE º TIPO º REGALIA º OBSERVACION
EN CASO DE QUE LA REGALIA SEA MAYOR QUE EL PROMEDIO DE REGALIAS
OBSERVACION ='REGALIA MAYOR QUE EL PROMEDIO'
SINO 'REGALIA MENOR QUE EL PROMEDIO'"

El query que tengo es este:

Código SQL:
Ver original
  1. SELECT
  2.     title 'NOMBRE',
  3.     TYPE,
  4.     royalty,
  5.     CASE
  6.         WHEN royalty>AVG(royalty)
  7.             THEN 'Regalía mayor que el promedio'
  8.         ELSE
  9.             'Regalía menor que el promedio'
  10.     END 'OBSERVACION'
  11. FROM titles
  12. GROUP BY royalty,title,TYPE

Pero está malo, estoy trabajando con la base de datos "PUBS"
Dentro del case coloco la condición utilizando una función de agregado pero para eso necesito agrupar por cada campo.

Lo que se me viene a la mente es que la condición con funciones de agregado se deben hacer en un HAVING pero no se como plantearlo aquí.

Les agradezco su ayuda.