Bonjour,

Je ne parviens pas à trouver une méthode satisfaisante pour gérer en transact la problématique d'intérêts composé.
Je m'explique ; supposons que je place un capital en début d'année à un taux mensuel variable, je souhaiterais que
ma requête me retourne pour chacun des mois de l'année le montant de mon capital actualisé des interets perçus.
Voila ce que cela donnerait dans un tableur :

capital initial = 100
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
date		rendement	interet + capital 
31/01/09	0,05		105,00
28/02/09	0,03		108,15
31/03/09	-0,02		105,99
30/04/09	0,01		107,05
31/05/09	0,08		115,61
30/06/09	-0,06		108,67
31/07/09	0,07		116,28
31/08/09	0,1		127,91
30/09/09	-0,12		112,56
31/10/09	0,06		119,31
30/11/09	0,03		122,89
31/12/09	0,09		133,95
J'ai bien essayé différentes méthodes (CTE, self-join...) mais je bute systématiquement sur un problème de syntaxe...
J'imagine qu'il existe une autre méthode que le passage par un curseur, non ?

Ma config :

Microsoft SQL Server 2005 - 9.00.3068.00 (Intel X86)
Feb 26 2008 18:15:01
Copyright (c) 1988-2005 Microsoft Corporation
Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

Merci de votre aide !

Le jeu de test :

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
CREATE TABLE dbo.tf_interest_rates
	(id INT IDENTITY(1,1) NOT NULL,
	date DATETIME NOT NULL,
	pct	 DECIMAL (8,6) NOT NULL)
GO
 
INSERT INTO dbo.tf_interest_rates (date, pct) VALUES ('20090131',	0.05)
INSERT INTO dbo.tf_interest_rates (date, pct) VALUES ('20090228',	0.03)
INSERT INTO dbo.tf_interest_rates (date, pct) VALUES ('20090331',	-0.02)
INSERT INTO dbo.tf_interest_rates (date, pct) VALUES ('20090430',	0.01)
INSERT INTO dbo.tf_interest_rates (date, pct) VALUES ('20090531',	0.08)
INSERT INTO dbo.tf_interest_rates (date, pct) VALUES ('20090630',	-0.06)
INSERT INTO dbo.tf_interest_rates (date, pct) VALUES ('20090731',	0.07)
INSERT INTO dbo.tf_interest_rates (date, pct) VALUES ('20090831',	0.1)
INSERT INTO dbo.tf_interest_rates (date, pct) VALUES ('20090930',	-0.12)
INSERT INTO dbo.tf_interest_rates (date, pct) VALUES ('20091031',	0.06)
INSERT INTO dbo.tf_interest_rates (date, pct) VALUES ('20091130',	0.03)
INSERT INTO dbo.tf_interest_rates (date, pct) VALUES ('20091231',	0.09)