- my $strcalc .= "SELECT $linefield, $colfield, count( * ) FROM biblioitems, items WHERE (items.biblioitemnumber = biblioitems.biblioitemnumber) AND $line is not null AND $column is not null";
- @$filters[0]=~ s/\*/%/g if (@$filters[0]);
- $strcalc .= " AND dewey >" . @$filters[0] ."" if ( @$filters[0] );
- @$filters[1]=~ s/\*/%/g if (@$filters[1]);
- $strcalc .= " AND dewey <" . @$filters[1] ."" if ( @$filters[1] );
- @$filters[2]=~ s/\*/%/g if (@$filters[2]);
- $strcalc .= " AND lccn >" . @$filters[2] ."" if ( @$filters[2] );
- @$filters[3]=~ s/\*/%/g if (@$filters[3]);
- $strcalc .= " AND lccn <" . @$filters[3] ."" if ( @$filters[3] );
- @$filters[4]=~ s/\*/%/g if (@$filters[4]);
- $strcalc .= " AND items.itemcallnumber >" . @$filters[4] ."" if ( @$filters[4] );
- @$filters[5]=~ s/\*/%/g if (@$filters[5]);
- $strcalc .= " AND items.itemcallnumber <" . @$filters[5] ."" if ( @$filters[5] );
- @$filters[6]=~ s/\*/%/g if (@$filters[6]);
- $strcalc .= " AND biblioitems.itemtype like '" . @$filters[6] ."'" if ( @$filters[6] );
- @$filters[7]=~ s/\*/%/g if (@$filters[7]);
- $strcalc .= " AND biblioitems.publishercode like '" . @$filters[7] ."'" if ( @$filters[7] );
- @$filters[8]=~ s/\*/%/g if (@$filters[8]);
- $strcalc .= " AND publicationyear >" . @$filters[8] ."" if ( @$filters[8] );
- @$filters[9]=~ s/\*/%/g if (@$filters[9]);
- $strcalc .= " AND publicationyear <" . @$filters[9] ."" if ( @$filters[9] );
- @$filters[10]=~ s/\*/%/g if (@$filters[10]);
- $strcalc .= " AND items.homebranch like '" . @$filters[10] ."'" if ( @$filters[10] );
- @$filters[11]=~ s/\*/%/g if (@$filters[11]);
- $strcalc .= " AND items.location like '" . @$filters[11] ."'" if ( @$filters[11] );
+ my $strcalc .= "SELECT $linefield, $colfield, count( * ) FROM biblioitems LEFT JOIN items ON (items.biblioitemnumber = biblioitems.biblioitemnumber) WHERE 1";
+ if (@$filters[0]){
+ @$filters[0]=~ s/\*/%/g;
+ $strcalc .= " AND dewey >" . @$filters[0] ."";
+ }
+ if (@$filters[1]){
+ @$filters[1]=~ s/\*/%/g ;
+ $strcalc .= " AND dewey <" . @$filters[1] ."";
+
+ }
+ if (@$filters[2]){
+ @$filters[2]=~ s/\*/%/g ;
+ $strcalc .= " AND lccn >" . @$filters[2] ."" ;
+ }
+ if (@$filters[3]){
+ @$filters[3]=~ s/\*/%/g;
+ $strcalc .= " AND lccn <" . @$filters[3] ."" ;
+ }
+ if (@$filters[4]){
+ @$filters[4]=~ s/\*/%/g ;
+ $strcalc .= " AND items.itemcallnumber >=" . $dbh->quote(@$filters[4]) ."" ;
+ }
+
+ if (@$filters[5]){
+ @$filters[5]=~ s/\*/%/g;
+ $strcalc .= " AND items.itemcallnumber <=" . $dbh->quote(@$filters[5]) ."" ;
+ }
+
+ if (@$filters[6]){
+ @$filters[6]=~ s/\*/%/g;
+ $strcalc .= " AND biblioitems.itemtype like '" . @$filters[6] ."'";
+ }
+
+ if (@$filters[7]){
+ @$filters[7]=~ s/\*/%/g;
+ @$filters[7].="%" unless @$filters[7]=~/%/;
+ $strcalc .= " AND biblioitems.publishercode like \"" . @$filters[7] ."\"";
+ }
+ if (@$filters[8]){
+ @$filters[8]=~ s/\*/%/g;
+ $strcalc .= " AND publicationyear >" . @$filters[8] ."" ;
+ }
+ if (@$filters[9]){
+ @$filters[9]=~ s/\*/%/g;
+ $strcalc .= " AND publicationyear <" . @$filters[9] ."";
+ }
+ if (@$filters[10]){
+ @$filters[10]=~ s/\*/%/g;
+ $strcalc .= " AND items.homebranch like '" . @$filters[10] ."'";
+ }
+ if (@$filters[11]){
+ @$filters[11]=~ s/\*/%/g;
+ $strcalc .= " AND items.location like '" . @$filters[11] ."'" if ( @$filters[11] );
+ }
+