Chandrashekar
2/17/2016 - 3:34 PM

Apply Filter Dynamicaly in query

Apply Filter Dynamicaly in query

--DECLARE @tblWaveIds UDT_StrList
--DECLARE @tblMgrUserIds UDT_StrList
--DECLARE @tblEngUserIds UDT_StrList
--DECLARE @tblSecondaryRoleIds UDT_StrList
--DECLARE @tblFacilityIds UDT_StrList
--DECLARE @tblCenterPguIds UDT_StrList
--DECLARE @tblCenterPguSkillIds UDT_StrList
DECLARE @csvWaveIds VARCHAR(max) = N'-1,4,1,3,2'
DECLARE @waveCount INT = 0

SELECT @waveCount = COUNT(s.[Value])
FROM dbo.Spliter(@csvWaveIds, ',') s

SELECT @waveCount

SELECT uc.CenterId
	,a.AssessmentId
	,ucxcps.WaveId
	,a.MgrUserId
	,uc.UserId
	,a.PrimaryRole
	,a.SecondaryRoleId
	,a.FacilityId
	,a.ServiceTower
	,a.Region
	,cps.CenterXPGUId
	,cps.CenterXPGUXSkillId
	,a.IsAssessmentActivated
	,a.IsComplete
	,a.StartDate
	,a.CompletedDate
	,a.TestTakenCount
	,a.NoOfRetest
	,trs.ActivityId
	,trs.Rating
FROM dbo.Assessment a
INNER JOIN dbo.UserCenterXCenterPguSkill ucxcps ON ucxcps.Id = a.UserCenterXCenterPguSkillId
INNER JOIN dbo.UserXCenter uc ON uc.UserXCenterId = ucxcps.UserXCenterId
INNER JOIN dbo.CenterXPGUXSkill cps ON cps.CenterXPGUXSkillId = ucxcps.CenterXPGUXSkillId
LEFT JOIN dbo.TCIAssessmentResultSummary trs ON trs.AssessmentId = a.AssessmentId
WHERE a.IsActive = 1
	AND (
		@waveCount = 0
		OR ISNULL(ucxcps.WaveId, - 1) IN (
			SELECT dbo.Spliter.[Value]
			FROM dbo.Spliter(@csvWaveIds, ',')
			)
		)
ORDER BY ucxcps.WaveId
	,a.MgrUserId
	,uc.UserId
	,cps.CenterXPGUId
	,cps.CenterXPGUXSkillId