====== pears.NetReportFulfilment ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create procedure "pears"."NetReportFulfilment"( in "pWebUserID" char(20),in "From__D" char(20),in "To__D" char(20) )
result( "Title__H" char(100),"Position__1A" char(100),"Bookings_Received__RT" integer,"Bookings_Filled__RT" integer,"Fill_Percentage__RMT" double )
begin
declare "pstart" date;
declare "pend" date;
declare "rTitle" char(100);
declare local temporary table "Cos"(
"CompanyID" char(20) null,
) not transactional;
set "pstart" = "iqxnetstringtodate"("From__D");
set "pend" = "iqxnetstringtodate"("To__D");
set "rTitle" = "dateformat"("pstart",'dd/mm/yyyy')+' - '+"dateformat"("pend",'dd/mm/yyyy');
-- Get all the Companies the WebUser is Associated with
insert into "Cos"( "CompanyID" )
select distinct "companyid" from "employment" key join "iqxnetuserlink" where "iqxnetuserid" = "pWebUserID";
select "rTitle","vacancy"."position","sum"("isnull"("nullif"("vacancy"."noofposts",0),1)) as "Books",
"sum"((select "count"() from "placement" where "vacancyid" = "vacancy"."vacancyid")) as "Fills",
100.0*(cast("Fills" as double)/cast("Books" as double)) as "FillPercent"
from "vacancy" key join "employment" key join "company" join "cos" on "company"."companyid" = "cos"."companyid"
where "vacancy"."entrydate" between "pstart" and "pend" and "vacancy"."entrydate" >= "IQXNetCompanyStartDate"("Company"."companyid")
group by grouping sets((),("rTitle","vacancy"."position"))
end
go
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetReportFulfilment" IS
{create procedure pears.NetReportFulfilment(in pWebUserID char(20),in From__D char(20),in To__D char(20))
result(Title__H char(100),Position__1A char(100),Bookings_Received__RT integer,Bookings_Filled__RT integer,Fill_Percentage__RMT double)
begin
declare pstart date;
declare pend date;
declare rTitle char(100);
declare local temporary table Cos(
CompanyID char(20) null,
) not transactional;
set pstart=iqxnetstringtodate(From__D);
set pend=iqxnetstringtodate(To__D);
set rTitle=dateformat(pstart,'dd/mm/yyyy')+' - '+dateformat(pend,'dd/mm/yyyy');
-- Get all the Companies the WebUser is Associated with
insert into Cos( CompanyID)
select distinct companyid from employment key join iqxnetuserlink where iqxnetuserid = pWebUserID;
select rTitle,vacancy.position,sum(isnull(nullif(vacancy.noofposts,0),1)) as Books,
sum((select count(*) from placement where vacancyid = vacancy.vacancyid)) as Fills,
100.0*(cast(Fills as double)/cast(Books as double)) as FillPercent
from vacancy key join employment key join company join cos on company.companyid = cos.companyid
where vacancy.entrydate between pstart and pend and vacancy.entrydate >= IQXNetCompanyStartDate(Company.companyid)
group by grouping sets((),(rTitle,vacancy.position))
end
}