UFN_MAJORGIVING_DAYSTOACCEPTEDASK
Returns a result set with #Asks and #Days for each defined Opportunity amount range.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@PROSPECTPLANTYPECODEID | uniqueidentifier | IN | |
@DESIGNATIONID | uniqueidentifier | IN | |
@FUNDRAISERID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_MAJORGIVING_DAYSTOACCEPTEDASK(
@STARTDATE datetime,
@ENDDATE datetime,
@PROSPECTPLANTYPECODEID uniqueidentifier,
@DESIGNATIONID uniqueidentifier,
@FUNDRAISERID uniqueidentifier
)
returns table
as
return
select
R.ID OPPORTUNITYAMOUNTBRACKETID,
R.NAME,
R.LOWERLIMIT,
count(*) ASKS,
sum(datediff(day, I.FIRSTDATE, O.RESPONSEDATE)) DAYS
from
dbo.OPPORTUNITY O
inner join dbo.PROSPECTPLAN PP on PP.ID=O.PROSPECTPLANID
inner join dbo.UFN_OPPORTUNITYAMOUNTRANGES() R on O.AMOUNT between R.LOWERLIMIT and R.UPPERLIMIT
inner join (
select min(DATE) FIRSTDATE, PROSPECTPLANID
from dbo.INTERACTION
group by PROSPECTPLANID
) I on I.PROSPECTPLANID=PP.ID
where
O.STATUSCODE=3
and O.RESPONSEDATE between @STARTDATE and @ENDDATE
and (@PROSPECTPLANTYPECODEID is null or PP.PROSPECTPLANTYPECODEID = @PROSPECTPLANTYPECODEID)
and (@FUNDRAISERID is null or PP.PRIMARYMANAGERFUNDRAISERID = @FUNDRAISERID)
and (@DESIGNATIONID is null or exists(select 1 from dbo.OPPORTUNITYDESIGNATION OD where OD.OPPORTUNITYID=O.ID and OD.DESIGNATIONID=@DESIGNATIONID))
group by
R.ID,
R.NAME,
R.LOWERLIMIT;