In the following sproc, if @SS2BRUserID is not passed, I want it to return all the rows (equivalent to commenting out 'AND @SS2BRUserID IS NULL OR C.SS2BRUserID=@SS2BRUserID'). It doesnt seem to be working for me. Can anyone help me with this?
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
SET NOCOUNT ON
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[SP_REPORTSUMMARY]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE [dbo].[SP_REPORTSUMMARY]
GO
CREATE PROCEDURE [dbo].[SP_REPORTSUMMARY]
@SS2BRUserID int=NULL
AS
BEGIN
SELECT C.CampaignID,C.CampaignName,C.Status,C.AvailabletoGeneralPublic,C.Cost,
COUNT(
CASE
WHEN CC.CampaignStatus = 1
THEN CC.CampaignStatus
ELSE NULL
END
)
AS ActiveUsers,
COUNT(
CASE
WHEN CC.CampaignStatus = 3
THEN CC.CampaignStatus
ELSE NULL
END
)
AS CompletedUsers,
COUNT(
CASE
WHEN CC.CampaignStatus = 4
THEN CC.CampaignStatus
ELSE NULL
END
)
AS DroppedOutUsers,
COUNT(
CASE
WHEN CC.CampaignStatus NOT IN(1,3,4)
THEN CC.CampaignStatus
ELSE NULL
END
)
AS AllOtherUsers,
U.FirstName + ' ' + U.LastName AS ProgramOwner
FROM CampaignConsumer CC
INNER JOIN Campaign C
ON CC.CampaignID=C.CampaignID
INNER JOIN SS2BRUser U
ON C.SS2BRUserID=U.SS2BRUserID
AND @SS2BRUserID IS NULL OR C.SS2BRUserID=@SS2BRUserID
GROUP BY U.FirstName,U.LastName,
C.CampaignID,C.CampaignName,C.Status,C.AvailabletoGeneralPublic,C.Cost
ORDER BY U.FirstName,C.CampaignID
END
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
SET NOCOUNT ON
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[SP_REPORTSUMMARY]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE [dbo].[SP_REPORTSUMMARY]
GO
CREATE PROCEDURE [dbo].[SP_REPORTSUMMARY]
@SS2BRUserID int=NULL
AS
BEGIN
SELECT C.CampaignID,C.CampaignName,C.Status,C.AvailabletoGeneralPublic,C.Cost,
COUNT(
CASE
WHEN CC.CampaignStatus = 1
THEN CC.CampaignStatus
ELSE NULL
END
)
AS ActiveUsers,
COUNT(
CASE
WHEN CC.CampaignStatus = 3
THEN CC.CampaignStatus
ELSE NULL
END
)
AS CompletedUsers,
COUNT(
CASE
WHEN CC.CampaignStatus = 4
THEN CC.CampaignStatus
ELSE NULL
END
)
AS DroppedOutUsers,
COUNT(
CASE
WHEN CC.CampaignStatus NOT IN(1,3,4)
THEN CC.CampaignStatus
ELSE NULL
END
)
AS AllOtherUsers,
U.FirstName + ' ' + U.LastName AS ProgramOwner
FROM CampaignConsumer CC
INNER JOIN Campaign C
ON CC.CampaignID=C.CampaignID
INNER JOIN SS2BRUser U
ON C.SS2BRUserID=U.SS2BRUserID
AND @SS2BRUserID IS NULL OR C.SS2BRUserID=@SS2BRUserID
GROUP BY U.FirstName,U.LastName,
C.CampaignID,C.CampaignName,C.Status,C.AvailabletoGeneralPublic,C.Cost
ORDER BY U.FirstName,C.CampaignID
END