/ / Comment puis-je obtenir l'année en cours et en même temps obtenir uniquement les années précédentes par un paramètre fourni? - sql-server-2008

Comment puis-je obtenir l'année en cours et en même temps obtenir uniquement les années précédentes par un paramètre fourni? - sql-server-2008

Par exemple, si vous fournissez 4 comme paramètre, il renverra l'année en cours et les 4 dernières années: 2013 et (2012, 2011, 1010, 2009)

Réponses:

1 pour la réponse № 1

Si vous voulez une liste d'années comme:

years
-----------
2013
2012
2011
2010
2009

Cette requête devrait le faire:

DECLARE @interval INT
SET @interval = 4
;WITH DateSequence( years ) AS
(
SELECT YEAR(GETDATE()) AS Years
UNION ALL
SELECT Years - 1
FROM DateSequence
WHERE Years > YEAR(getdate())-@interval
)

--select result
SELECT * FROM DateSequence OPTION (MaxRecursion 1000)