>Questo è quello che immaginavo ma di cui non ero sicuro
ti ho fatto un esempio così, giusto per farti vedere come potevi approcciare (a volte è un approccio efficace, ma in questo caso, se guardi i piani IMHO è meglio la soluzione di cui parlavamo prima):
USE tempdb;
GO
CREATE TABLE #tempDate
(
TaId int IDENTITY(1, 1) NOT NULL PRIMARY KEY CLUSTERED
, TaData date CONSTRAINT UK_TaData UNIQUE
, TaNote varchar(200)
, TaNum int
);
GO
INSERT INTO #tempDate (TaData, TaNote, TaNum)
VALUES
('20140101', '', 1),
('20140102', '', 2),
('20140103', '', 3),
('20140104', '', 4),
('20140105', '', 5),
('20140106', '', 6),
('20140107', '', 7),
('20140108', '', 8);
GO
DECLARE @NumeroDiRecord int = 4;
WITH wDate AS
(
SELECT
TaId
, TaData
, TaNote
, TaNum
, rnum = ROW_NUMBER() OVER(ORDER BY TaData DESC)
FROM
#tempDate TD
)
SELECT
TaId
, TaData
, TaNote
, TaNum
FROM
wDate
WHERE
rnum <= @NumeroDiRecord
ORDER BY
TaData;
DROP TABLE #tempDate;
GO
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi