by TotallySQL - Product Type: Component / .NET Class / 100% Managed Code
The analytical capability of Excel with the raw data-crunching power of SQL Server. SQLFinancials extends and enhances your T-SQL programming environment by adding 50+ powerful new financial functions and aggregates that faithfully replicate and extend all the financial analysis features available in Microsoft Excel. SQLFinancials includes: 29 functions for calculating yields, rates, coupon periods etc. for corporate and government bonds, 7 functions for calculating depreciation on various bases, 15 functions for calculating interest payments, rates, principal payments, durations, present and future values etc. for loans or investments, 3 functions for calculating internal rates of return for a series of cashflows and 2 functions for converting between dollar fractions and decimal values.
As the use of Microsoft Excel for financial analysis is so widespread, the SQLFinancial functions have been developed so that they faithfully reproduce the same results for the same set of input values in virtually all cases, enabling a smoother migration of existing spreadsheet-based systems into the more powerful, structured and manageable world of SQL Server. However there are also some improvements in the SQLFinancial functions versus their Excel counterparts:
Native Look and Feel
All TotallySQL Transact-SQL extensions are implemented using familiar programming objects within SQL (scalar and table-valued functions, aggregate functions, user-defined types, stored procedures) , keeping the syntax clean and making them as fast and easy to use as the built-in native math functions such as AVG, SUM etc.
Multi-Valued Aggregates - even in SQL2005
Six of the 50+ SQLFinancials functions (IRR, MIRR, XIRR, NPV, XNPV, FVSCHEDULE) are in the form of aggregate functions that take multiple input values. This works fine for SQL2008 but is commonly supposed to be impossible in SQL2005 - since you can supply only one input parameter to an aggregate function. TotallySQL have, however, devised a very simple but smart way of doing this in SQL2005 using SQLTuples: you simply combine the input parameters (of any type) into a SQLTuples object on-the-fly as part of the function call. Only a very minor syntax change is needed and there is no measurable performance penalty even when used with truly enormous data sets.