So how does Crystal get it's data?
Again, you are specifying architecture without understanding how Crystal works, nor describing what you need.
Crystal expects a single data source per report.
And the above would NOT crush bandwidth unless it's improperly designed.
So one common method would be to create a standard subreport which gets inserted into every report (build out a generic template which already has it in there), and just use the SQL in an add command rather than bothering with a sproc, it's not going to be any faster using a sproc for this sort of SQL. But a sproc will work.
You can also include it in your data being returned (which could crush performance), or create a SQL Expression, but either will cause it to be returned multiple times.
It's not database intensive, so just create the subreport, it also will promote reusability.
-k