Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/06/2013, 07:06
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con cursor en pl/sql

Bueno, en realidad lo que has hecho no está mal.... pero tampoco está bien. AL menos no lo está si se lee con cuidado la consigna que te dieron.
Fijate lo que te dicen:
Cita:
1.-Crear un cursor que contabilice el número de empleados de cada país y el nombre del país en que existen sucursales.
Es decir que se buscan estas cosas
1) Cantidad de empleados por país.
2) Países en que hay sucursales

En realidad el cursor no es para contar los empleados, sino para listar los datos resultantes, y para ello la consulta no es exactamente igual. Incluso, el proceso entero es mucho menos complicado de lo que hiciste.
Un detalle que se infiere de la consigna es que todo empleado pertenece a una sucursal, y que no hay sucursales sin empleados.

Sería mas o menos así:
Código SQL:
Ver original
  1. CURSOR cursor_suma AS
  2. SELECT C.country_name COUNT (DISTINCT employee_id) totalempleados
  3. FROM employees E, departments D, locations L, countries C
  4. WHERE E.department_id = Ddepartment_id
  5.     AND  D.location_id = L.location_id
  6.     AND L.country_id = C.country_id
  7. GROUP BY C.country_name;

Luego de eso, simplemente lo recorres y muestras los resultados. Incluso puedes sumar el total de empleado para mostrar al final, e incluso poner la cantidad de países.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)