Bonjour,

Pour une prévision de chiffre d'affaire je dois effectuer la répartition mensuelle du montant de contrats d'entretien. Cette prévision doit se faire pour une date variable et à un horizon variable n (typiquement 12 ou 18 mois).
De par ce caractère variable et pour éviter de recopier n fois mon code, je souhaite utiliser un boucle (WHILE). Mais le résultat est logiquement un table de n lignes. Je souhaite le résultat en colonnes successives correspondant aux mois 1, 2, 3 ...n.

Est-ce possible ? Comment procéder ?

Merci de votre aide.

Pour fixer les idées, le code d'un élément du code final. PrevDate = date origine de la prévision, IndexPériode = n (nombre de mois d'horizon), Ci = Date initiale du contrat, Cf = Date finale du contrat

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
USE [POWER_SBO]
DECLARE @PrevDate Datetime
DECLARE	@IndexPériode Int
DECLARE @IndexBoucle Int
DECLARE	@Ci Datetime
DECLARE	@Cf Datetime
 
SET @PrevDate = CONVERT (DATETIME, '01/01/2017', 103)
SET @IndexPériode = 17
SET @Ci = CONVERT (DATETIME, '15/03/2016', 103)
SET @Cf = CONVERT (DATETIME, '14/03/2017', 103)
SET @IndexBoucle = 0
 
WHILE @IndexBoucle <= @IndexPériode
BEGIN
SELECT * FROM POWER_SBO.dbo.Rep_n(@PrevDate,@IndexBoucle,@Ci,@Cf)
SET @IndexBoucle = @IndexBoucle + 1
END