There are at least 4 tables involved, what's the record count for each of those?
I would start by breaking up this big calc and executing each sql individually to see which one is responsible for the slowdown. It is very likely going to be the two big ones that SUM() and have a bunch of JOINs. ExecuteSQL() has a real performance dropoff linear with its complexity. You may be able to do multiple simpler SQL calls to get the same result as the complex one but faster.