Reputation: 140
I want to use multiple inputs in a procedure in IN
condition. How can I do this?
Below is my query code.
Declare @iM_ID varchar(100)
set @iM_ID='20,22,24,25'
select @iM_ID
SELECT M.M_ID,
SUM(CASE WHEN CT_ID=1
THEN 1
ELSE 0 END) AS "Secret_Coupons",
SUM(CASE WHEN CT_ID=2
THEN 1
ELSE 0 END) AS "Hot_Coupons"
FROM C_Master
INNER JOIN M_Master
ON C_Master.M_ID=M_Master.M_ID
and datediff(hh,getutcdate(),End_Datetime)>0
and M_Master.M_ID in (@iM_ID)
GROUP BY M_Master.M_ID
Upvotes: 0
Views: 63
Reputation: 28403
Try like this
DECLARE @sql AS VARCHAR(MAX)
Declare @iM_ID varchar(100)
SET @iM_ID='20,22,24,25'
SET @sql = 'SELECT M.M_ID,SUM(CASE WHEN CT_ID=1 THEN 1 ELSE 0 END) AS "Secret_Coupons",
SUM(CASE WHEN CT_ID=2 THEN 1 ELSE 0 END) AS "Hot_Coupons"
FROM C_Master INNER JOIN M_Master ON C_Master.M_ID=M_Master.M_ID
AND datediff(hh,getutcdate(),End_Datetime)>0 AND
M_Master.M_ID IN ( ' + @iM_ID + ')
GROUP BY M_Master.M_ID'
EXECUTE @sql
Upvotes: 1