Use what I've called the COALESCE trick.
Set the value of the parameter to NULL to mean "Don't care", i.e. you want any (or all) values, otherwise set it to the value you want to compare to.
In your example, then, the parameter value for 'Revenue Band' would be set equal to NULL, and all the rest set to whatever you want to test against.
Then, your WHERE clause uses COALESCE, as:
... WHERE RevenueBand = COALESCE(@RevenueBand, RevenueBand) ...
The way this works is that if the parameter @RevenueBand has a nonnull value, COALESCE returns the parameter value, so the result of the WHERE clause is to test the column value against the parameter value. But, if the parameter has the value NULL, then the COALESCE returns the column value. Thus, the WHERE clause tests the column to see if it is equal to itself, which of course is always true, so this is in effect a no-op, and all values are selected.
Note that if the column can have a NULL value, this won't work - you'll have to COALESCE both sides to some appropriate value outside the domain of possible values for the column if you want a NULL parameter to select NULL column values.
Jeff Mason
Custom Apps, Inc.
www.custom-apps.com