• IF you have ascertained that you are indeed working off the exact same database in SSMS and in your SSRS report, move on to step 2:

    Whittle down (simplify) your T-SQL and see where it starts working. Put in a TOP 1 after the SELECT keyword to limit what you end up with and remove the last condition in your last WHERE statement. Run. If no results, remove one more condition. Lather, rinse, repeat. When it finally works, check to why the last (blocking) filter was based on data that is not in the database.

    If you run out of conditions and it still does not work, bite the bullet and remove the derived tables from your select and re-insert them one at a time - check if it still works ...

    When you finally get it to work, you can look at improving the T-SQL and try using CTE's and windowing functions to avoid the hit of derived tables related to the rows of the main table. This is SS2K12. If you get the report to run fast then you could lose the NOLOCK hint.