Générer la plage de dates et appliquer le calcul sur chaque logging SQL

J'ai le cas suivant (format Excel):

Date Start: 2016-01-01 Date Finish: 2016-12-31 Max Value: 96 Point Value: 0.0972 

Donc, si je change ces parameters ci-dessus, l'logging va changer. Par exemple, le résultat ci-dessous:

 Date Value ----------------------------- 2016-01-01 96 --> This value is taken from MaxValue Parameter 2016-01-02 95.9 --> It requires a formula, which is (1 - PointValue) * Previous Value 2016-01-03 95.8 ff. 2016-12-31 67.3 --> Last Record, Based on Date Finish. The formula is the same 

Est-ce que quelqu'un a une idée de comment le faire dans SQL Script?
Je vous remercie.

Vous pouvez résoudre cela en utilisant un CTE.

 DECLARE @StartDate DATE = '2016-01-01' ,@EndDate DATE = '2016-12-31' ,@MaxValue float = 96 ,@PointValue float = 0.0972 ;WITH ctetest AS ( SELECT @StartDate AS CDate,@MaxValue AS Value UNION ALL SELECT dateadd(day,1,CDate) ,(1-@PointValue) * Value FROM ctetest WHERE dateadd(day,1,CDate)<=@EndDate ) SELECT * FROM ctetest OPTION (MAXRECURSION 0) 

Note: – Veuillez vérifier le foluma, et le changer si nécessaire.