i'm sure everyone has MADE something like this. you really have to customize it to your database to get the feel right.
getting some input and querying a database based on the input and spitting out the result set is REALLY simple. if you could get the fields, and how to sort you are set.
so just make an interface that list the available fields, let them choose the ones they want. then query the database and spit out the results unsorted. then let them click on the column names to sort. all you need is a simple front end, and an easier back end... 1 query and 1 while loop, 2 lines!
if you want complicated reports like the average time between purchases, then your interface will be a bit trickier, and probably impossible for some numbers you may want, for that reason also, you have to make this yourself. or post your database and what you want and hope someone has a light workload and some time to do it for you.