• Use this one... I think u were missing conditions in between...

    set ANSI_NULLS ON

    set QUOTED_IDENTIFIER ON

    go

    ALTER PROCEDURE [dbo].[DateReport]

    @DateStart nvarchar(50),

    @EndDate nvarchar(50),

    @CompName nvarchar(50)

    AS

    BEGIN

    declare @Query nvarchar(4000)

    set @Query ='Select [year].[month],

    [year].[year],

    [year].[money],

    Tvarizi.[money] AS TVM,

    Tvarizi.BillNum AS TVB,

    Tvarizi.DateOfPayBill AS TDOPB,

    Tcash.[Money] AS TCM,

    Tcash.BillNum AS TCB,

    Tcash.Recievedate AS TCRD,

    case isnull(Tvarizi.WCashID,0) when 0 then TCashTCompany.CompanyName else TvariziTCompany.CompanyName end AS TCom,

    case isnull(Tvarizi.WCashID,0) when 0 then TCashMoney.TotallValue else TvariziMoney.TotallValue end AS TMon

    From [year]

    Left outer join TVarizi On substring( TVarizi.DateOfPayBill,3,5)=[year].Date

    Left outer join TCash On substring( TCash.Recievedate,3,5) = [year].Date

    Left outer join TCompany as TCashTCompany On (TCashTCompany.CompanyName = TCash.companyName)

    Left outer join TCompany as TvariziTCompany On (TvariziTCompany.CompanyName = Tvarizi.companyName)

    Left outer join [Money] as TCashMoney On (TCashTCompany.CompanyName = TCashMoney.companyName)

    Left outer join [Money] as TvariziMoney On (TvariziTCompany.CompanyName = TvariziMoney.companyName)

    Where 1=1 '

    if isnull(@CompName,'')<>''

    set @Query = @Query + ' and (case isnull(Tvarizi.WCashID,0) when 0 then TCashTCompany.CompanyName else TvariziTCompany.CompanyName end ='''+@CompName+''')'

    if isnull(@DateStart,'')<>'' and isnull(@EndDate,'')<>''

    set @Query = @Query + ' and ([Year].Date between '''+@DateStart+''' and '''+@EndDate+''')'

    if isnull(@DateStart,'')<>''

    set @Query = @Query + ' and ([Year].Date >='''+@DateStart+''')'

    if isnull(@EndDate,'')<>''

    set @Query = @Query + ' and ([Year].Date <='''+@EndDate+''')'

    set @Query = @Query + 'order by TCom, [year].[year], [year].[month]'

    print @Query

    exec (@Query)

    END