I work with a lot of clients who do things with money. Loads of money. I’m a very trustworthy person.
At just about every client site, I see a common set of financial functions being used to calculate various things. The code is all the same, too.
Some of it comes from published government guidelines, and some of it comes straight out of accounting 101 books.
The big problem is that all of these functions were written as scalar UDFs, and performance becomes dead.
Recently, one of my clients was nice enough to agree to let me publish my rewrites of their functions as inline table valued functions.
License and Fair Warning
These functions are provided with no license whatsoever. You can take them and do whatever you want with them
The caveat here is that I take no responsibility for anything you do with them. I did not write any of the mathematical formulas in these functions, and I take no credit for any of the code for anything in this folder, other than rewriting the scalar UDFs as inline table valued functions. I was given permission to publish these by the people who wrote and/or incorporated the code originally.
They returned the same results as the scalar UDFs in local tests, so to that end the results are accurate. You will have to do your own local tests to make sure they work the same as whatever they’re replacing.
Aside from logical requirements, you also need to make sure they satisfy any legal or regulatory requirements for your industry. That sounds important, too.
The bottom line here is that you can’t sue me, so sayeth the law offices of Na Na Na Boo Boo.
If you find any issues with these functions, you have another version, or you want to add a function to the library, you can contribute over at the GitHub repo.
If you’d prefer to do so anonymously, you can email me.
Thanks for reading!
If this is the kind of SQL Server stuff you love learning about, you’ll love my training. I’m offering a 75% discount to my blog readers if you click from here. I’m also available for consulting if you just don’t have time for that and need to solve performance problems quickly.