Bonsoir,

Voila, j'ai une procedure stockée qui me permet de générer le calendrier dans une table en entrant comme paramètre l'année. Le probleme est que les 365 lignes qu'elle me génére je ne les obtient pas dans l'ordre chronologique ou numérique
1/1/2007
2/1/2007
3/1/2007 etc...

Curieusement La 1ere fois que je l'ai executée j'ai pas eu ce problème.
Je les ai obtenu dans l'ordre


Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 
CREATE PROCEDURE dbo.calendrier_INS
(@Annee varchar(4))
AS
BEGIN
declare @date1 datetime
declare @date2 datetime
declare @date3 datetime
declare @i int
 
set @date3 = '1/1/'+@Annee
set @date1 = '1/1/'+@Annee
set @date2 = '31/12/'+@Annee
set @i = 1
 
while @date3 <> @date2 
BEGIN
insert into calendrier  (jour,mois,annee) values (DATEPART(d,@date3),DATEPART(m,@date3), DATEPART(yyyy,@date3))
SET  @date3 = @date3+1
END
 
insert into calendrier  (jour,mois,annee) values (day(@date3),month(@date3), year(@date3))
END



La structure de la table est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
CREATE TABLE [dbo].[calendrier] (
  [id_jour] int,
  [jour] char(2) COLLATE French_CI_AS,
  [mois] char(2) COLLATE French_CI_AS,
  [annee] char(4) COLLATE French_CI_AS,
  [num_semaine] int,
  [ini_jour] char(1) COLLATE French_CI_AS,
  [nom_jour] char(15) COLLATE French_CI_AS,
  [id_mois] int,
  [nom_mois] char(20) COLLATE French_CI_AS,
  [event_jour] char(1) COLLATE French_CI_AS
)
ON [PRIMARY]
GO
Meme en faisant un select avec un order by ca me donne pas le tri

Si vous avez une solution

Je vous remercie