Thanks for responded Simon. You are right in the fact that I am trying
to concatenate some strings here but I really thought the datatypes were
consistant. Would you mind taking a look at the stored procedure? I
warn you, it is quite long. :(
alter procedure dbo.sp_copscm004 (
@Bank Integer=NULL,
@Region Integer=NULL,
@Branch Integer=NULL,
@Officer Integer=NULL,
@MinDate Datetime,
@MaxDate datetime=null
)
as
Declare
@Var_MinDate datetime,
@Var_MaxDate datetime,
@SQLMainStr varchar(8000),
@SQLWhereStr varchar(500)
Set @Var_MinDate = @Mindate
Set @Var_MaxDate = @Maxdate
If (@Bank is not Null)
Begin
Set @SQLMainStr=
'select
tbl_casemaster.acctno,
tbl_casemaster.PrimaryAcctHolder,
tbl_casemaster.ProductType,
tbl_casemaster.TaxID,
tbl_casemaster.opendate,
tbl_casemaster.closeddate,
tbl_casemaster.ChargeOff_Principle,
tbl_casemaster.ChargeOff_Fees,
tbl_casemaster.ChargeOff_Interest,
tbl_casemaster.ChargeOff_Misc,
tbl_casemaster.AcctOfficerPerm,
tbl_casemaster.AcctOfficerTemp,
tbl_casemaster.agencyused,
tbl_bank.bankname,
tbl_region.regionname,
tbl_branch.branchname
from tbl_casemaster
inner join tbl_bank
on tbl_casemaster.bankid = tbl_bank.bankid
inner join tbl_branch
on tbl_casemaster.branchid = tbl_branch.branchid
inner join tbl_region
on tbl_casemaster.regionid = tbl_region.regionid
where
(ChargeOff_Principle > 0 or
ChargeOff_Fees > 0 or
ChargeOff_Interest > 0 or
ChargeOff_Misc > 0)and
tbl_CaseMaster.bankid = ''' + @Bank + ''' and'
if (@Maxdate is not null)
begin
Set @SQLWhereStr =
' tbl_casemaster.opendate >= ''' + Cast(@Var_MinDate as Varchar(100)) +
''' and
tbl_casemaster.opendate <= ''' + Cast(@Var_MaxDate as Varchar(100)) +
''''
end
else
begin
Set @SQLWhereStr =
' tbl_casemaster.opendate = ''' + Cast(@Var_MinDate as Varchar(100)) +
''''
end
End
else if (@Region is not Null)
Begin
Set @SQLMainStr=
'select
tbl_casemaster.acctno,
tbl_casemaster.PrimaryAcctHolder,
tbl_casemaster.ProductType,
tbl_casemaster.TaxID,
tbl_casemaster.opendate,
tbl_casemaster.closeddate,
tbl_casemaster.ChargeOff_Principle,
tbl_casemaster.ChargeOff_Fees,
tbl_casemaster.ChargeOff_Interest,
tbl_casemaster.ChargeOff_Misc,
tbl_casemaster.AcctOfficerPerm,
tbl_casemaster.AcctOfficerTemp,
tbl_casemaster.agencyused,
tbl_bank.bankname,
tbl_region.regionname,
tbl_branch.branchname
from tbl_casemaster
inner join tbl_bank
on tbl_casemaster.bankid = tbl_bank.bankid
inner join tbl_branch
on tbl_casemaster.branchid = tbl_branch.branchid
inner join tbl_region
on tbl_casemaster.regionid = tbl_region.regionid
where
(ChargeOff_Principle > 0 or
ChargeOff_Fees > 0 or
ChargeOff_Interest > 0 or
ChargeOff_Misc > 0) and
tbl_CaseMaster.Regionid = ''' + @Region + ''' and'
if (@Maxdate is not null)
begin
Set @SQLWhereStr =
' tbl_casemaster.opendate >= ''' + Cast(@Var_MinDate as Varchar(100)) +
''' and
tbl_casemaster.opendate <= ''' + Cast(@Var_MaxDate as Varchar(100)) +
''''
end
else
begin
Set @SQLWhereStr =
' tbl_casemaster.opendate = ''' + Cast(@Var_MinDate as Varchar(100)) +
''''
end
End
else if (@Branch is not Null)
begin
Set @SQLMainStr=
'select
tbl_casemaster.acctno,
tbl_casemaster.PrimaryAcctHolder,
tbl_casemaster.ProductType,
tbl_casemaster.TaxID,
tbl_casemaster.opendate,
tbl_casemaster.closeddate,
tbl_casemaster.ChargeOff_Principle,
tbl_casemaster.ChargeOff_Fees,
tbl_casemaster.ChargeOff_Interest,
tbl_casemaster.ChargeOff_Misc,
tbl_casemaster.AcctOfficerPerm,
tbl_casemaster.AcctOfficerTemp,
tbl_casemaster.agencyused,
tbl_bank.bankname,
tbl_region.regionname,
tbl_branch.branchname
from tbl_casemaster
inner join tbl_bank
on tbl_casemaster.bankid = tbl_bank.bankid
inner join tbl_branch
on tbl_casemaster.branchid = tbl_branch.branchid
inner join tbl_region
on tbl_casemaster.regionid = tbl_region.regionid
where
(ChargeOff_Principle > 0 or
ChargeOff_Fees > 0 or
ChargeOff_Interest > 0 or
ChargeOff_Misc > 0)and
tbl_CaseMaster.Branchid = ''' + @Branch + ''' and'
if (@Maxdate is not null)
begin
Set @SQLWhereStr =
' tbl_casemaster.opendate >= ''' + Cast(@Var_MinDate as Varchar(100)) +
''' and
tbl_casemaster.opendate <= ''' + Cast(@Var_MaxDate as Varchar(100)) +
''''
end
else
begin
Set @SQLWhereStr =
' tbl_casemaster.opendate = ''' + Cast(@Var_MinDate as Varchar(100)) +
''''
end
End
else if (@Officer is not Null)
Begin
Set @SQLMainStr=
'select
tbl_casemaster.acctno,
tbl_casemaster.PrimaryAcctHolder,
tbl_casemaster.ProductType,
tbl_casemaster.TaxID,
tbl_casemaster.opendate,
tbl_casemaster.closeddate,
tbl_casemaster.ChargeOff_Principle,
tbl_casemaster.ChargeOff_Fees,
tbl_casemaster.ChargeOff_Interest,
tbl_casemaster.ChargeOff_Misc,
tbl_casemaster.AcctOfficerPerm,
tbl_casemaster.AcctOfficerTemp,
tbl_casemaster.agencyused,
tbl_bank.bankname,
tbl_region.regionname,
tbl_branch.branchname
from tbl_casemaster
inner join tbl_bank
on tbl_casemaster.bankid = tbl_bank.bankid
inner join tbl_branch
on tbl_casemaster.branchid = tbl_branch.branchid
inner join tbl_region
on tbl_casemaster.regionid = tbl_region.regionid
where
(ChargeOff_Principle > 0 or
ChargeOff_Fees > 0 or
ChargeOff_Interest > 0 or
ChargeOff_Misc > 0)and
tbl_casemaster.AcctOfficerPerm = ''' + @Officer + ''' and'
if (@Maxdate is not null)
begin
Set @SQLWhereStr =
' tbl_casemaster.opendate >= ''' + Cast(@Var_MinDate as Varchar(100)) +
''' and
tbl_casemaster.opendate <= ''' + Cast(@Var_MaxDate as Varchar(100)) +
''''
end
else
begin
Set @SQLWhereStr =
' tbl_casemaster.opendate = ''' + Cast(@Var_MinDate as Varchar(100)) +
''''
end
End
else
begin
Set @SQLMainStr=
'select
tbl_casemaster.acctno,
tbl_casemaster.PrimaryAcctHolder,
tbl_casemaster.ProductType,
tbl_casemaster.TaxID,
tbl_casemaster.opendate,
tbl_casemaster.closeddate,
tbl_casemaster.ChargeOff_Principle,
tbl_casemaster.ChargeOff_Fees,
tbl_casemaster.ChargeOff_Interest,
tbl_casemaster.ChargeOff_Misc,
tbl_casemaster.AcctOfficerPerm,
tbl_casemaster.AcctOfficerTemp,
tbl_casemaster.agencyused,
tbl_bank.bankname,
tbl_region.regionname,
tbl_branch.branchname
from tbl_casemaster
inner join tbl_bank
on tbl_casemaster.bankid = tbl_bank.bankid
inner join tbl_branch
on tbl_casemaster.branchid = tbl_branch.branchid
inner join tbl_region
on tbl_casemaster.regionid = tbl_region.regionid
where
(ChargeOff_Principle > 0 or
ChargeOff_Fees > 0 or
ChargeOff_Interest > 0 or
ChargeOff_Misc > 0)and'
if (@Maxdate is not null)
begin
Set @SQLWhereStr =
' tbl_casemaster.opendate >= ''' + Cast(@Var_MinDate as Varchar(100)) +
''' and
tbl_casemaster.opendate <= ''' + Cast(@Var_MaxDate as Varchar(100)) +
''''
end
else
begin
Set @SQLWhereStr =
' tbl_casemaster.opendate = ''' + Cast(@Var_MinDate as Varchar(100)) +
''''
end
End
--exec(@SQLMainStr + @SQLWhereStr)
print(@SQLMainStr + @SQLWhereStr)
GO
DaylonRed
*** Sent via Developersdex
http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!