Use a Dynamic Sql
declare @strSql nvarchar(1000)
declare @param1 nvarchar(10) = ''
declare @param2 nvarchar(10) = ''
set @strSql = 'SELECT @SUM = SUM(table1.id) FROM table1 '
IF (@param1 IS NOT NULL)
set @strSql = @strSql + ' INNER JOIN table2 ON table1.t2=table2.id'
IF (@param2 IS NOT NULL)
set @strSql = @strSql +' INNER JOIN table3 ON table1.t3=table3.id'
set @strSql = @strSql +' WHERE '
IF (@param1 IS NOT NULL)
set @strSql = @strSql +' table2.field=@field2'
IF (@param2 IS NOT NULL)
set @strSql = @strSql +' AND table3.field=@field3'
print @strSql
exec sp_executesql @strSql