Que tal Grupo, ojala y alguien sepa como hacer esto porque ya me estoy
volviendo loquito, lo que necesito es sacar el 15% de registros de una
tabla, o sea una muestra de la tabla, donde la muestra debera ser del 15 %.
tengo esto, pero me devuelve mas del 15%
////////////////////////////////////////////////////////////////////////////
////////
declare @maximo int, @minimo int, @registros int, @muestra integer, @hasta
integer
select top 100 *
into #muestra
from tablita
select @registros = count(*) from #muestra
select @maximo = max(nrreporte), @minimo=min(nrreporte) from #muestra
set @muestra = ( round(@registros/(@registros*0.15),1))-1
set @hasta = 1 + round((@registros)*.15,0)*@muestra
select @registros as registros, @maximo as maximo, @minimo as minimo,
@muestra as muestra, @hasta as hasta
select nrreporte, svindice
from #muestra
where (nrreporte-@minimo + 1) % @muestra = 0 and (nrreporte + 1) <(nrreporte+ @hasta)
drop table #muestra
////////////////////////////////////////////////////////////////////////////
////////
Ejemplo: si la tabla tuviera 10 registros y los reportes fueran del 1 al
100, un ejemplo del resultado deseado sería:
3,6,10,11,22,44,46,51,59,66,72,87,89,95,100
Gracias por leer el problema.
MS-SQL2K
SP3a
Saludos.
Vicente López R.
Leer las respuestas