SQL - Ordenar nombres en orden alfabético utilizando correlacion

 
Vista:

Ordenar nombres en orden alfabético utilizando correlacion

Publicado por Fernando (2 intervenciones) el 24/07/2017 16:24:31
Buenas,
Necesito me den una mano con este problema. Me piden ordenar en forma alfabetica los nombres de los jugadores que menores goles tienen el la tabla Goleadores de la BD. En dicha tabla esta solo el documento del jugador, por lo que realice un join con la tabla jugadores para ver los nombres de los mismos. El tema es que no me permiten usa el "ORDER BY", lo tengo que hacer por correlacion. si tengo pocos jugadores en la tabla goleadores no hay problema, pero cuando tiene muchos y con goles en cero no me funciona.
el script que hice es el siguiente:
/*2* Funcion
Definir una funcion fn##### que:
Reciba un Id_Club y una categoria
Identificar y retornar al primer jugador por orden alfabetico que cumpla con las restricciones:
- Pertenecer al club y categoria indicada
- Tener la menor cantidad de goles en la tabla de goleadores

El primer jugador por orden alfabetico debe efectuarse correlacionando, no ordenando la consulta*/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if exists(select * from sysobjects where name='fn_primer_jugador' and type='FN')
	drop function dbo.fn_primer_jugador
 
CREATE FUNCTION dbo.fn_primer_jugador (@idClub int, @cat int)
RETURNS int
AS
	BEGIN
		DECLARE @dni int
		select @dni = j.Nrodoc from (select * from jugadores where Id_Club=@idClub and Categoria=@cat) j inner join
                goleadores g on j.Nrodoc=g.Nrodoc where j.Nombre = any(select j1.Nombre from (select * from
                jugadores where Id_Club=@idClub and Categoria=@cat) j1 inner join goleadores g1 on
            j1.Nrodoc=g1.Nrodoc where g.Nrodoc=g1.Nrodoc and g1.cantgoles=(select min(g2.cantgoles)
	    from Goleadores g2 where j1.id_club=@idClub and Categoria=@cat))
	RETURN @dni
	END
 
GO

Las tablas son:
Jugadores
Tipo_Doc (pk)
Nro_Doc (pk)
Nombre
Fec_Nac
Categoria
Id_Club


Goleadores
Id_Goleador(pk)
Tipo_Doc
Nro_Doc
Id_Partido
Minuto
cantgoles


Partidos
Id_Partido(pk)
Id_ClubL
Id_ClubV
GolesL
GolesV

Espero me puedan ayudar.
Gracias
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.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Ordenar nombres en orden alfabético utilizando correlacion

Publicado por Isaias (1921 intervenciones) el 27/07/2017 17:23:14
¿En que motor de base de datos estas trabajando?, ¿Es una especie de tarea?
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

Ordenar nombres en orden alfabético utilizando correlacion

Publicado por Fernando (2 intervenciones) el 10/08/2017 21:32:32
Estoy trabajando con SQL Server, y era un ejercicio de final, uno que no pude resolver. Por suerte la materia Base de Datos 2 la pude aprobar. Pero me sigue quedando la duda de como resolver dicho problema. Si pueden orientarme se los agradecería.

Saludos.
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