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 :
Meme en faisant un select avec un order by ca me donne pas le tri
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
Si vous avez une solution
Je vous remercie
Partager