$strcalc.=" DATE_SUB(date_due, INTERVAL CAST(issues.renewals AS SIGNED INTEGER) * (CAST(issues.renewals AS SIGNED INTEGER)+1) DAY) AS issuedate, returndate, COUNT(*), date_due, issues.renewals, issuelength FROM `issues`,borrowers,biblioitems LEFT JOIN items ON (biblioitems.biblioitemnumber=items.biblioitemnumber) LEFT JOIN issuingrules ON (issuingrules.branchcode=issues.branchcode AND issuingrules.itemtype=biblioitems.itemtype AND issuingrules.categorycode=borrowers.categorycode) WHERE issues.itemnumber=items.itemnumber AND issues.borrowernumber=borrowers.borrowernumber ";
@$filters[0]=~s/\*/%/gif(@$filters[0]);
$strcalc.=" AND issues.returndate > '".@$filters[0]."'"if(@$filters[0]);
@$filters[1]=~s/\*/%/gif(@$filters[1]);
$strcalc.=" AND issues.returndate < '".@$filters[1]."'"if(@$filters[1]);
@$filters[2]=~s/\*/%/gif(@$filters[2]);
$strcalc.=" AND borrowers.categorycode like '".@$filters[2]."'"if(@$filters[2]);
@$filters[3]=~s/\*/%/gif(@$filters[3]);
$strcalc.=" AND biblioitems.itemtype like '".@$filters[3]."'"if(@$filters[3]);
@$filters[4]=~s/\*/%/gif(@$filters[4]);
$strcalc.=" AND issues.branchcode like '".@$filters[4]."'"if(@$filters[4]);
@$filters[5]=~s/\*/%/gif(@$filters[5]);
$strcalc.=" AND borrowers.sort1 like '".@$filters[5]."'"if(@$filters[5]);
@$filters[6]=~s/\*/%/gif(@$filters[6]);
$strcalc.=" AND borrowers.sort2 like '".@$filters[6]."'"if(@$filters[6]);
$strcalc.=" AND dayname(timestamp) like '".$daysel."'"if($daysel);
$strcalc.=" AND monthname(timestamp) like '".$monthsel."'"if($monthsel);
$linefield=~s/datetime/issues.returndate/;
$linefield=~s/itemtype/biblioitems.itemtype/;
$colfield=~s/datetime/issues.returndate/;
$colfield=~s/itemtype/biblioitems.itemtype/;
$strcalc.=" group by issuedate, returndate, $linefield, $colfield order by $linefield,$colfield";
# Processing average loanperiods
$strcalc.="SELECT $linefield, $colfield, ";
$strcalc.=" DATE_SUB(date_due, INTERVAL CAST(issuingrules.issuelength AS SIGNED INTEGER) * (CAST(issues.renewals AS SIGNED INTEGER)+1) DAY) AS issuedate, returndate, COUNT(*), date_due, issues.renewals, issuelength FROM `issues`,borrowers,biblioitems LEFT JOIN items ON (biblioitems.biblioitemnumber=items.biblioitemnumber) LEFT JOIN issuingrules ON (issuingrules.branchcode=issues.branchcode AND issuingrules.itemtype=biblioitems.itemtype AND issuingrules.categorycode=borrowers.categorycode) WHERE issues.itemnumber=items.itemnumber AND issues.borrowernumber=borrowers.borrowernumber and returndate is not null";
#
@$filters[0]=~s/\*/%/gif(@$filters[0]);
$strcalc.=" AND issues.returndate > '".@$filters[0]."'"if(@$filters[0]);
@$filters[1]=~s/\*/%/gif(@$filters[1]);
$strcalc.=" AND issues.returndate < '".@$filters[1]."'"if(@$filters[1]);
@$filters[2]=~s/\*/%/gif(@$filters[2]);
$strcalc.=" AND borrowers.categorycode like '".@$filters[2]."'"if(@$filters[2]);
@$filters[3]=~s/\*/%/gif(@$filters[3]);
$strcalc.=" AND biblioitems.itemtype like '".@$filters[3]."'"if(@$filters[3]);
@$filters[4]=~s/\*/%/gif(@$filters[4]);
$strcalc.=" AND issues.branchcode like '".@$filters[4]."'"if(@$filters[4]);
@$filters[5]=~s/\*/%/gif(@$filters[5]);
$strcalc.=" AND borrowers.sort1 like '".@$filters[5]."'"if(@$filters[5]);
@$filters[6]=~s/\*/%/gif(@$filters[6]);
$strcalc.=" AND borrowers.sort2 like '".@$filters[6]."'"if(@$filters[6]);
$strcalc.=" AND dayname(timestamp) like '".$daysel."'"if($daysel);
$strcalc.=" AND monthname(timestamp) like '".$monthsel."'"if($monthsel);
#
$strcalc.=" group by issuedate, returndate, $linefield, $colfield order by $linefield,$colfield";