I had following query
DECLARE @category VARCHAR(50) = 'monitor,LCD,Desktop' 
DECLARE @sql nvarchar(4000)
IF @category IS NOT NULL 
BEGIN
SELECT @sql = 'SELECT *, 
CASE 
    WHEN Aging > 90 THEN ''> 90'' 
    ELSE
        CASE 
            WHEN Aging > 60 THEN ''61-90''
            ELSE 
                CASE 
                    WHEN Aging > 30 THEN ''31-60''
                    ELSE ''<=30''
                END
        END
END AS AgingCat, Pct*100 AS Percentage FROM dbo.vwPartnerProductAging
where category IN ('+@category+') 
ORDER BY PartnerName, Category, [Description]'
END
exec sp_executesql @sql, N'@category VARCHAR(50) ', @category
I want show the data from following query by category which had values: Monitor, LCD and Desktop. And i thing the problem in "WHERE blablabla"
I had 2 condition i had try.
first condition :
From the code showed when i declare @category with values its getting error
"Invalid Column name monitor"
"Invalid Column name LCD"
"Invalid Column name Desktop"
second condition :
I make a change for
where category IN ('''+@category+''') 
It works if I only add one value, but if I declare @category with more than one value its not showing anything but no error
If I put the values directly on "WHERE blablabla" it works fine.
Working condition :
DECLARE @category VARCHAR(50) = 'monitor,LCD,Desktop' 
DECLARE @sql nvarchar(4000)
IF @category IS NOT NULL 
BEGIN
SELECT @sql = 'SELECT *, 
CASE 
    WHEN Aging > 90 THEN ''> 90'' 
    ELSE
        CASE 
            WHEN Aging > 60 THEN ''61-90''
            ELSE 
                CASE 
                    WHEN Aging > 30 THEN ''31-60''
                    ELSE ''<=30''
                END
        END
END AS AgingCat, Pct*100 AS Percentage FROM dbo.vwPartnerProductAging
where category IN (''Monitor'',''LCD'',''Desktop'') 
ORDER BY PartnerName, Category, [Description]'
END
exec sp_executesql @sql, N'@category VARCHAR(50) ', @category
I wanted to change:
where category IN (''Monitor'',''LCD'',''Desktop'') 
to:
where category IN ( ' + @category + ' )
Thanks
 
     
    