Hi try something similar to this:
CREATE PROC [dbo].[parListClubs] -- Parameter list
AS
SELECT
-1 AS ClubID,
' ' AS ClubName
UNION ALL
SELECT
Entity_ID AS ClubID,
Name AS ClubName
FROM dbo.Clubs
ORDER BY ClubName
--This will be your detailed extraction --
CREATE PROC [dbo].[rptClubMembershipType] (@ClubID VARCHAR(100) = -1)
AS
SELECT
MT.Description AS [Membership Type],
COUNT(*) AS #
FROM
dbo.MembershipType MT
LEFT JOIN
dbo.Members_Cycling MC
ON MT.ID = MC.Cycling_Province_MembershipType
LEFT JOIN
Members M
ON MC.Entity_ID = M.Entity_ID
WHERE
((NULLIF(@ClubID,-1) IS NULL) OR (M.ClubID IN (@ClubID)))
GROUP BY
MT.Description
Hope this helps: Give care to the where clause!
if u r not expecting nulls in ur filter column u can use
FilterColumn in (isnull(nullif(@Parameter,-1),FilterColumn))