Esto es lo que tengo, es un lio k kuesta entender
lo k agoes restar 1 a la puntuacion maxima, y si existe sumo uno a contador, y miro si existe otro kn los mismos puntos y licencia distinta
declare @p_max as nvarchar (6)
select top 1 @p_max = re.puntuacion
from resultados as re
join deportes as de
on de.cod_dep=re.cod_dep
where de.deporte='AJEDREZ'
order by re.puntuacion desc
select @p_max
declare @licencia as nvarchar (9)
declare @contador as integer
set @contador=0
while @p_max>0 and @contador <= 3
begin
if exists(select re.licencia
from resultados as re
join deportes as de
on de.cod_dep=re.cod_dep
where re.puntuacion = @p_max and de.deporte='AJEDREZ')
begin
select @licencia=re.licencia
from resultados as re
join deportes as de
on de.cod_dep=re.cod_dep
where re.puntuacion = @p_max and de.deporte='AJEDREZ'
set @contador = @contador + 1
while @contador<=3 and exists(select re.licencia
from resultados as re
join deportes as de
on de.cod_dep=re.cod_dep
where re.puntuacion = @p_max and de.deporte='AJEDREZ' and re.licencia<>@licencia)
begin
select @licencia=re.licencia
from resultados as re
join deportes as de
on de.cod_dep=re.cod_dep
where re.puntuacion = @p_max and de.deporte='AJEDREZ' and re.licencia<>@licencia
set @contador = @contador + 1
end
end
if @contador = 4
break
else
begin
set @p_max=@p_max-1
continue
end
end
select pa.nombre,pa.apellido1,pa.apellido2,@p_max
from participantes as pa
where pa.licencia=@licencia