USE temp
GO
IF ( EXISTS ( SELECT * FROM sysobjects WHERE name = 'condition' and type = 'P' ) )
  DROP PROCEDURE condition
GO
CREATE PROC condition @Name varchar(20), @FieldName varchar(20), @BeginValue int, @FinishValue int
AS 
IF ( EXISTS ( SELECT * FROM tempdb.dbo.sysobjects WHERE name = '##condition' ))
    DROP TABLE ##condition
declare @sql varchar(8000)
set @sql='select * 
   from temp..balance
   where ('+@FieldName+' between '+
   cast(@BeginValue as varchar)+' and '+cast(@FinishValue as varchar)+')'
+case isnull(@Name,'') when '' then '' else ' and (name = '''+@Name+''')' end