Bonjour ,
est il possible d'imbriquer des WHILE ?
Dans mon cas des que le 2eme WHILE se termine on dirait qu'il termine aussi le 1er.

Testé indépendamment ils fonctionnent.
Mon 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
25
26
27
28
29
30
31
 
SET DATEFORMAT dmy
declare @DATE_EN_COURS as date
declare @DATE_DEBUT as date
declare @DATE_FIN as date
declare @CODE_MAGASIN as numeric
declare @NOMBRE_MAX_MAGASIN as numeric
 
SET @DATE_EN_COURS='01/01/1900'
SET @CODE_MAGASIN=1
SET @NOMBRE_MAX_MAGASIN=2
 
WHILE DATEADD(month, DATEDIFF(month, 0, @DATE_EN_COURS), 0)<>DATEADD(month, DATEDIFF(month, 0,(DATEADD(month, 1, GETDATE())) ), 0)
	BEGIN
		SET @DATE_DEBUT=DATEADD(month, DATEDIFF(month, 0, @DATE_EN_COURS), 0) /* premier_jour_du_mois_courant  */
		SET @DATE_FIN=DATEADD(day, -1, DATEADD(month, DATEDIFF(month, 0,@DATE_EN_COURS) + 1, 0)) /*  dernier_jour_du_mois_courant */
		SET @DATE_EN_COURS=DATEADD(month, 1, @DATE_EN_COURS)
 
			WHILE @CODE_MAGASIN<=@NOMBRE_MAX_MAGASIN
				BEGIN
					insert into stat_mois (REFERENCE,CODE_MAGASIN,QTE_SORTIE,QTE_ENTREE,TACH_TOTALHT,TACH_TOTALHTNET,TACH_TOTALTTC,TACH_TOTALTTCNET,TACH_TOTALPRHT,TVTE_TOTALHT,TVTE_TOTALHTNET,TVTE_TOTALTTC,TVTE_TOTALTTCNET,TVTE_TOTALPRHT,TVTE_TOTALMARGE)
 
					select distinct reference ,CODE_MAGASIN,SUM(QTE_SORTIE),sum(QTE_ENTREE),sum(ACH_TOTALHT),sum(ACH_TOTALHTNET),sum(ACH_TOTALTTC),sum(ACH_TOTALTTCNET),sum(ACH_TOTALPRHT),sum(VTE_TOTALHT),sum(VTE_TOTALHTNET),sum(VTE_TOTALTTC),sum(VTE_TOTALTTCNET),sum(VTE_TOTALPRHT),sum(VTE_TOTALMARGE)
						from MOUVSTK 
							where CODE_ORIGINE<>'<INV>'and CODE_ORIGINE<>'RS'and CODE_ORIGINE<>'IM' AND CODE_MAGASIN=@CODE_MAGASIN AND "DATE">=@DATE_DEBUT and "DATE"<=@DATE_FIN 
								GROUP by REFERENCE,CODE_MAGASIN
 
					SET @CODE_MAGASIN=@CODE_MAGASIN+1
				END		
 
END