2017-01-30 3 views
0

Ich möchte einen Diskontsatz hinzufügen, wenn Sie Cashflows über einen bestimmten Zeitraum summieren. Um dies zu tun, muss ich jeden der verbleibenden Cashflows mit dem Diskontsatz multiplizieren, der mit diesem Zeitraum vollendet wird. Ich könnte das machen, wenn ich die Zeilennummer jeder Periode kenne, aber ich kann sie nicht mit dem Fenster calc benutzen, das ich benutze. Das folgende Beispiel zeigt die Spalte "Verbleibende Zinsen", die ich auf der Basis von Rohdaten von Zeitraum und Zinsen zu berechnen versuche.Verwenden Sie Zeilennummer in Gesamtsumme über UNBOUNDED FOLGENDEN SQL

select Period,RemainingInterest = SUM(PeriodInterestPaid) 
OVER (PARTITION BY Name ORDER BY period ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING)  
FROM CF A 



Period Interest Remaining Interest(Query)  Remaining Interest(Required) 
1  1000  1000+2000      1000/1.02^1+2000/1.02^2 
2  2000  2000       2000/1.02^1 
+0

Siehe http://stackoverflow.com/questions/41803909/calculation-in-sql-server/41806985#41806985 sieht sehr ähnlich aus, was Sie brauchen – Serg

+0

@Serg - Vielen Dank, Änderung der Sortierreihenfolge auf der verknüpften SQLhas getan der Trick. – jedd

Antwort

-1

Hallo, ich hoffe ich gut verstehen --- müssen Sie die Summe von Wert zu erhalten, basierend auf der Zeit, was unter i Stand aus der Abfrage aber sagte u, dass Sie ein mehrfach benötigen

So es gibt keine Notwendigkeit, eine Fensterfunktion gerade Gruppe von

select Period, SUM(PeriodInterestPaid) as RemainingInterest 

FROM CF A 

zu machen und wenn u eine Multiplay wollen Sie Gruppe auch machen, aber u wird Anthere exp verwenden: Pls explan was genau brauchen u

Verwandte Themen