Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[CONSULTA] Ejercicio recursividad T-SQL
Autor Mensaje
maxenz Sin conexión
Profesor del Modulo A
Sin estado :(
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 285
Agradecimientos dados: 2
Agradecimientos: 57 en 16 posts
Registro en: Jun 2008
Mensaje: #1
[CONSULTA] Ejercicio recursividad T-SQL Ejercicios Gestión de Datos
Que tal, tengo el siguiente ejercicio para resolver:

Cree el/los objetos de base de datos necesarios para que dado un código de
empleado se retorne la cantidad de empleados que este tiene a su cargo (directa o
indirectamente). Solo contar aquellos empleados (directos o indirectos) que sean
menores que su jefe directo.


Basicamente, lo que me traba de este ejercicio (y de 2 o 3 mas que hay en la guia) es el tema de la recursividad.

O sea, no se bien como sacar los empleados indirectos de un jefe. Supongamos que un empleado es jefe de 2, esos 2 son jefes de otros 3, esos 3 son jefes de otros 3, y etc.. Como puedo obtener una consulta que me lo devuelva?

Porque joineando puedo hacerlo hasta el nivel 2, despues tendria que joinear dependiendo cuantos niveles vea que hay (una solucion horrible). Despues tambien puedo hacer un store con un cursor, que por cada empleado, llamar a ese store de nuevo recursivamente.
Pero si quiero ir contando la cant de empleados no se si voy a poder asi.

Se que en sql server hay funciones para hacer esto pero no son ANSI SQL, y dudo que las dejen usar.

Este ejercicio esta en la guia de t-sql de gestion de datos 1er cuatri 2013, si alguno me puede dar una mano buenisimo! gracias
22-06-2014 00:15
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gonnza Sin conexión
User Verde

*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 17.261
Agradecimientos dados: 780
Agradecimientos: 785 en 328 posts
Registro en: Mar 2010
BlogSpot Google+ YouTube
Mensaje: #2
RE: [CONSULTA] Ejercicio recursividad T-SQL
suponiendo una estructura asi

id | nombre | jefe
-------------------------

donde jefe es el id de un empleado en la misma tabla que es el jefe, yo haria algo como una funcion recursiva


create function dbo.getEmpleados(int @id)
as
begin
declare @cantidad int

if EXISTS(select 1 from empleados where @id = jefe)
BEGIN
@cantidad = (select count(*) from empleados where @id = jefe) + (select sum(dbo.getEmpleados(id)) from empleados where @id = jefe)
END
else
begin
set @cantidad = 0
end

return @cantidad
end



escribi la sintaxis medio al boleo, probablemente este mal, espero te de una idea igual

[Imagen: v34BEFt.gif]
(Este mensaje fue modificado por última vez en: 22-06-2014 00:30 por gonnza.)
22-06-2014 00:28
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.