try this.... you can still use most of the query but instead of parameters, you would use variables....
declare @site nvarchar(5), declare @comm_group1 nvarchar(10)=null , declare @comm_group2 nvarchar(10)=null, declare @productcode nvarchar(10)=null, declare @productfamily nvarchar(10)=null set @site='somevalue' set @comm_group1='somevalue1,somevalue2' set @comm_group2='somevalue1,somevalue2' set @productcode='somevalue' set @productfamily='somevalue' begin if @comm_group1='%' set @comm_group1=null if @comm_group2='%' set @comm_group2=null if @productcode='%' set @productcode=null if @productfamily='%' set @productfamily=null SELECT distinct [SITE] ,[YEAR] ,[MONTH] ,[PERIOD] ,[INVENTORY_UOM] ,[PART_NO] ,[ACCOUNTING_GROUP] ,[ACCOUNTING_GROUP_DESC] ,[ASSET_CLASS] ,[PRODUCT_CODE] ,[PRODUCT_CODE_DESC] ,[PRODUCT_FAMILY] ,[PRODUCT_FAMILY_DESC] ,[COMM_GROUP_1] ,[COMM_GROUP_1_DESC] ,[COMM_GROUP_2] ,[COMM_GROUP_2_DESC] ,[QUANTITY] ,[TOTAL_INVENTORY_VALUE] [CURRENT_TOTAL_INVENTORY_VALUE] ,[TOTAL_INVENTORY_VALUE_$] [CURRENT_TOTAL_INVENTORY_VALUE_$] ,[PRE_TOTAL_INVENTORY_VALUE] [PREVIOUS_TOTAL_INVENTORY_VALUE] ,[PRE_TOTAL_INVENTORY_VALUE_$] [PREVIOUS_TOTAL_INVENTORY_VALUE_$] ,[PART_DESCRIPTION] FROM [dbo].[ENV_StockChanges_V2] Where [site] = @site and ( COMM_GROUP_1 in (SELECT * FROM dbo.CSVToLIst(@comm_group1)) or @comm_group1 is null ) and ( COMM_GROUP_2 in (SELECT * FROM dbo.CSVToLIst(@comm_group2)) or @comm_group2 is null) and ( PRODUCT_CODE in (SELECT * FROM dbo.CSVToLIst(@productcode)) or @productcode is null) and ( PRODUCT_FAMILY in (SELECT * FROM dbo.CSVToLIst(@productfamily)) or @productfamily is null) End
Hope it Helps!!
No comments:
Post a Comment