--- /dev/null
+create temporary table callnumbers ( callnumber varchar(255) primary key, count int not null ) ;
+insert into callnumbers select itemcallnumber,count(itemcallnumber) from items where itemcallnumber is not null group by itemcallnumber ;
+
+
+-- Dodijeljene signature u skupini BB
+create temporary table t1 as
+select count(biblio.biblionumber) as count_biblio,
+ items.itemcallnumber,
+ biblio.author,
+ biblio.title,
+ biblioitems.publicationyear,
+ biblioitems.number,
+ items.biblionumber,
+ items.copynumber
+from items
+left join biblioitems on (items.biblioitemnumber=biblioitems.biblioitemnumber)
+left join biblio on (biblioitems.biblionumber=biblio.biblionumber)
+where
+ items.itemcallnumber is not null
+group by biblio.biblionumber
+order by items.itemcallnumber ;
+-- 26 sec.
+
+create index i1 on t1(itemcallnumber) ;
+
+create temporary table t2 as
+select
+ substring(itemcallnumber,1,2) as file,
+ regexp_replace( substring(itemcallnumber,3,2),'^[^0-9][^0-9]','other') as sheet,
+ count_biblio as br_primjeraka,
+ callnumbers.count as br_signatura,
+ itemcallnumber,
+ author as autor,
+ title as naslov,
+ publicationyear as godina,
+ number as svezak,
+ biblionumber,
+ copynumber
+
+from t1 join callnumbers on (callnumbers.callnumber = itemcallnumber)
+where itemcallnumber rlike '^[ABCDEFMPS][A-Z]';
+
+-- cleanup seet names
+update t2 set sheet='other' where sheet not rlike '^[0-9][0-9]' ;
+
+-- select count(file),file,sheet from t2 group by file,sheet ;
+
+-- select count(file),file from t2 group by file ;
+
+-- query to produce tables
+
+select * from t2 ;
+
+
+select
+ concat(file,'-dupli') as file,
+ sheet,
+ br_primjeraka,
+ br_signatura,
+ itemcallnumber,
+ autor, naslov, godina, svezak,
+ biblionumber,
+ copynumber
+from t2 where br_primjeraka < br_signatura;
+