Perdón por no contestar, no he recibido los mensajes de aviso de respuesta.
Bien, la solución estaba por usar SQL dinámico ya que tengo SQL Server 2000. Funciona bien, pero me ha surgido un problema al intentar darle una vuelta de tuerca al asunto. Si intento que también la tabla sobre la que se hacen las consultas se establezca dinámicamente me empieza a dar errores de sintaxis junto a EXECUTE:
Código:
ALTER PROCEDURE PA_LibroDelDia
(
@nDias int,
@tabla varchar(50)
)
AS
BEGIN
DECLARE @vSQL varchar(1000), @posi int
SELECT @vSQL = '(' + CONVERT(varchar,@nDias) + ' % (SELECT COUNT(*) FROM ' + @tabla + ') )+1'
SELECT @posi = EXECUTE(@vSQL)
SELECT @vSQL = 'SELECT TOP 1 tope.* FROM (SELECT TOP ' + CONVERT(varchar,@posi) + ' * FROM ' + @tabla + ' ORDER BY id) AS tope ORDER BY id DESC'
EXECUTE(@vSQL)
END