Liste d'entiers entre...

Le
Vivien Parlat
Bonjour,

J'ai un problème a priori simple : je souhaite obtenir une liste de
couples mois/années entre deux dates via une requête sql, dans sql
server, par ex entre octobre 2008 et février 2009:

mois an
10 2008
11 2008
12 2008
01 2009
02 2009

Est-ce possible ?

Merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Med Bouchenafa
Le #19475571
DECLARE @Date DATETIME,@DateFin DATETIME

SET @Date='20081001'
SET @DateFin='20090201'

WHILE @Date <= @DateFin
BEGIN
SELECT MONTH(@Date), YEAR(@Date)
SET @Date = DATEADD(month, 1, @Date)
END


--
Bien Cordialement
Med Bouchenafa

"Vivien Parlat" news:
Bonjour,

J'ai un problème a priori simple : je souhaite obtenir une liste de
couples mois/années entre deux dates via une requête sql, dans sql
server, par ex entre octobre 2008 et février 2009:

mois an
10 2008
11 2008
12 2008
01 2009
02 2009

Est-ce possible ?

Merci d'avance
Vivien Parlat
Le #19476201
Merci pour cette réponse. J'ai testé le script dans Sql server, il me
renvoie plusieurs tables d'un seul enregistrement.
Or l'idée est à la base de faire des stats pour chacune des dates
indiquées, vers une même table.
Est-il possible que tous ces enregistrements soient agrégés dans une
même table ? La requête est destinée à SSIS, sinon j'aurais program mé
un petit script d'insertion en c#...

On 3 juin, 07:42, "Med Bouchenafa"
DECLARE @Date DATETIME,@DateFin DATETIME

SET @Date='20081001'
SET @DateFin='20090201'

WHILE @Date <= @DateFin
BEGIN
    SELECT MONTH(@Date), YEAR(@Date)
    SET @Date = DATEADD(month, 1, @Date)
END

--
Bien Cordialement
Med Bouchenafa

"Vivien Parlat"
news:
Bonjour,

J'ai un problème a priori simple : je souhaite obtenir une liste de
couples mois/années entre deux dates via une requête sql, dans sql
server, par ex entre octobre 2008 et février 2009:

mois an
10     2008
11     2008
12     2008
01     2009
02     2009

Est-ce possible ?

Merci d'avance


Med Bouchenafa
Le #19477071
DECLARE @Date DATETIME,@DateFin DATETIME
DECLARE @tempTable TABLE( Mois INT, Annee INT)

SET @Date='20081001'
SET @DateFin='20090201'

WHILE @Date <= @DateFin
BEGIN
INSERT INTO @tempTable SELECT MONTH(@Date), YEAR(@Date)
SET @Date = DATEADD(month, 1, @Date)
END
SELECT * FROM @tempTable

--
Bien Cordialement
Med Bouchenafa
"Vivien Parlat" news:
Merci pour cette réponse. J'ai testé le script dans Sql server, il me
renvoie plusieurs tables d'un seul enregistrement.
Or l'idée est à la base de faire des stats pour chacune des dates
indiquées, vers une même table.
Est-il possible que tous ces enregistrements soient agrégés dans une
même table ? La requête est destinée à SSIS, sinon j'aurais programmé
un petit script d'insertion en c#...

On 3 juin, 07:42, "Med Bouchenafa"
DECLARE @Date DATETIME,@DateFin DATETIME

SET @Date='20081001'
SET @DateFin='20090201'

WHILE @Date <= @DateFin
BEGIN
SELECT MONTH(@Date), YEAR(@Date)
SET @Date = DATEADD(month, 1, @Date)
END

--
Bien Cordialement
Med Bouchenafa

"Vivien Parlat"
news:
Bonjour,

J'ai un problème a priori simple : je souhaite obtenir une liste de
couples mois/années entre deux dates via une requête sql, dans sql
server, par ex entre octobre 2008 et février 2009:

mois an
10 2008
11 2008
12 2008
01 2009
02 2009

Est-ce possible ?

Merci d'avance


WOLO Laurent
Le #19564871
Bonjour la communauté,

Vous pourrez améliorer la requête pour gerer plus de 10^3 jours d'écart
entre les deux dates

declare @d1 datetime;
declare @d2 datetime;

select @d1='20080101'
select @d2='20100603'



select convert(varchar(6),@d1+100*t3.n+10*t2.n+t1.n,112)
from (select 0 as n
union
select 1
union
select 2
union
select 3
union
select 4
union
select 5
union
select 6
union
select 7
union
select 8
union
select 9) t1 croiss join (select 0 as n
union
select 1
union
select 2
union
select 3
union
select 4
union
select 5
union
select 6
union
select 7
union
select 8
union
select 9) t2 cross join (select 0 as n
union
select 1
union
select 2
union
select 3
union
select 4
union
select 5
union
select 6
union
select 7
union
select 8
union
select 9) t3
where @d1+100*t3.n+10*t2.n+t1.n between @d1 and @d2






"Vivien Parlat" news:
Bonjour,

J'ai un problème a priori simple : je souhaite obtenir une liste de
couples mois/années entre deux dates via une requête sql, dans sql
server, par ex entre octobre 2008 et février 2009:

mois an
10 2008
11 2008
12 2008
01 2009
02 2009

Est-ce possible ?

Merci d'avance
Publicité
Poster une réponse
Anonyme