[ASK]sql query invalid column name (Help me…)

HELP!!i had following query \[code\]DECLARE @category VARCHAR(50) = 'monitor,LCD,Desktop' DECLARE @sql nvarchar(4000)IF @category IS NOT NULL BEGINSELECT @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 ENDEND AS AgingCat, Pct*100 AS Percentage FROM dbo.vwPartnerProductAgingwhere category IN ('+@category+') ORDER BY PartnerName, Category, [Description]'ENDexec sp_executesql @sql, N'@category VARCHAR(50) ', @category\[/code\]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 \[code\]where category IN ('''+@category+''') \[/code\]it is work if i put only one value, but if i declare @category with more than one values its not showing anything but no errorIf i put the values directly on "WHERE blablabla" its work fine. Working condition :\[code\]DECLARE @category VARCHAR(50) = 'monitor,LCD,Desktop' DECLARE @sql nvarchar(4000)IF @category IS NOT NULL BEGINSELECT @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 ENDEND AS AgingCat, Pct*100 AS Percentage FROM dbo.vwPartnerProductAgingwhere category IN (''Monitor'',''LCD'',''Desktop'') ORDER BY PartnerName, Category, [Description]'ENDexec sp_executesql @sql, N'@category VARCHAR(50) ', @category\[/code\]i wanted make a change on condition \[code\]where category IN (''Monitor'',''LCD'',''Desktop'') \[/code\]to\[code\]where category IN ( ' + @category + ' )\[/code\]Thanks before
 
Top