- @$filters[0]=~ s/\*/%/g if (@$filters[0]);
- $strcalc .= " AND borrowers.categorycode like '" . @$filters[0] ."'" if ( @$filters[0] );
- my $strqueryfilter = "SELECT DISTINCT borrowernumber FROM old_issues WHERE borrowernumber IS NOT NULL ";
- if (@$filters[1]){
- my $strqueryfilter .= "AND old_issues.timestamp> @$filters[1] ";
+ my @query_args;
+ if ( @$filters[0] ) {
+ @$filters[0]=~ s/\*/%/g;
+ $strcalc .= " AND borrowers.categorycode like ?";
+ push @query_args, @$filters[0];
+ }
+ $strcalc .= " AND NOT EXISTS (SELECT * FROM issues WHERE issues.borrowernumber=borrowers.borrowernumber ";
+ if ( @$filters[1] ) {
+ $strcalc .= " AND issues.timestamp > ?";
+ push @query_args, @$filters[1];
+ }
+ $strcalc .= ") ";
+ $strcalc .= " AND NOT EXISTS (SELECT * FROM old_issues WHERE old_issues.borrowernumber=borrowers.borrowernumber ";
+ if ( @$filters[1] ) {
+ $strcalc .= " AND old_issues.timestamp > ?";
+ push @query_args, @$filters[1];