--select * from OtherProperties if exists(select name from sysobjects where name='fGetVahedBasteBandi') drop function fGetVahedBasteBandi go create function fGetVahedBasteBandi(@Kal_ID int, @Pro_ID_Vahed int, @tedad decimal, @Pro_ID_VahedMotevaset int, @tedadVMotevaset decimal, @Pro_ID_VahedBozorg int, @tedadVBozorg decimal) returns nvarchar(200) as begin declare @res nvarchar(200),@temp decimal, @t2 decimal; set @res=''; if @Pro_ID_VahedBozorg is not null begin set @temp=@tedad; set @t2=@tedad; if @tedad>@tedadVBozorg* @tedadVMotevaset begin set @temp=floor(@tedad/(@tedadVBozorg*@tedadVMotevaset)) set @res=cast(@temp as nvarchar)+' '+(select name from OtherProperties where ID=@Pro_ID_VahedBozorg); set @t2=cast(@tedad as int)%cast((@tedadVBozorg*@tedadVMotevaset) as bigint); end if @t2>=@tedadVMotevaset begin set @temp=floor(@t2/@tedadVMotevaset) set @res=@res+' و '+cast(@temp as nvarchar)+' '+(select name from OtherProperties where ID=@Pro_ID_VahedMotevaset); set @t2=cast(@t2 as int)%cast(@tedadVMotevaset as bigint); end if @t2>0 begin set @res=@res+' و '+cast(@t2 as nvarchar)+' '+(select name from OtherProperties where ID=@Pro_ID_Vahed); end end else if @Pro_ID_VahedMotevaset is not null begin set @temp=@tedad; set @t2=@tedad; if @t2>=@tedadVMotevaset begin set @temp=floor(@t2/@tedadVMotevaset) set @res=cast(@temp as nvarchar)+' '+(select name from OtherProperties where ID=@Pro_ID_VahedMotevaset); set @t2=cast(@t2 as int)%cast(@tedadVMotevaset as bigint); end if @t2>0 begin set @res=@res+' و '+cast(@t2 as nvarchar)+' '+(select name from OtherProperties where ID=@Pro_ID_Vahed); end end else begin set @res=cast(@tedad as nvarchar)+' '+(select name from OtherProperties where ID=@Pro_ID_Vahed); end if(left(@res,3)=' و ') begin set @res=right(@res,len(@res)-3); end return @res end