Rapporten

|

Overzicht leners per vervaldatum

Met het onderstaande rapport kun je snel een overzicht krijgen van leners met een vervaldatum in een bepaalde periode.

SELECT
    cardnumber AS "Lenernummer",
    surname AS "Achternaam",
    firstname AS "Voornaam",
    dateexpiry AS "Einddatum",
    CONCAT('<a href=\"/cgi-bin/koha/members/moremember.pl?borrowernumber=', borrowernumber, '\">Bekijk lenergegevens</a>' ) AS ""
FROM
    borrowers
WHERE
    dateexpiry BETWEEN <<Verlopen tussen|date>> AND <<en|date>> and (borrowers.categorycode=<<Type lener|categorycode>>)

Met een kleine aanpassing krijg je hetzelfde overzicht, maar dan alleen met de lenersnummers (‘cardnumber’), wat weer handig is voor verdere batchverwerking van leners.

SELECT
    cardnumber AS "Lenernummer"
FROM
    borrowers
WHERE
    (dateexpiry BETWEEN <<Verlopen tussen |date>> AND <<en|date>>) and (borrowers.categorycode=<<Type lener|categorycode>>)
|

Overzicht actieve gebruikers

Met het onderstaande rapport krijg je snel een overzicht van het aantal actieve gebruikers van het bibliotheeksysteem in een bepaalde periode per categorie.

SELECT count(*) AS Aantal,categorycode as Lenertype
FROM borrowers
WHERE borrowernumber IN 
        (
        SELECT borrowernumber
        FROM statistics
        WHERE DATE( datetime ) BETWEEN <<Actief tussen (YYYY-MM-dd)|date>> AND <<en|date>>
        )
GROUP BY categorycode
|

Overzicht van nieuwe leners

Als je wilt weten hoeveel nieuwe leners aan Koha zijn toegevoegd in een bepaalde periode, kun je onderstaand rapport gebruiken.

SELECT  cardnumber AS Lenernummer, concat(surname,', ',firstname) AS Naam , CONCAT ('<a href=\"/cgi-bin/koha/circ/circulation.pl?borrowernumber=',borrowernumber,'\" target=blank>',borrowernumber,'</a>') AS Koharecord, borrowers.dateenrolled AS Invoerdatum
FROM borrowers 
WHERE dateenrolled BETWEEN <<Toegevoegd tussen (yyyy-mm-dd)|date>> 
      AND <<en (yyyy-mm-dd)|date>> AND branchcode=<<Locatie|branches>>
ORDER BY cardnumber DESC

Met een uitgeklede versie van dit rapport krijg je alleen een overzicht van de e-mailadressen van de lener. Die zou je vervolgens kunnen gebruiken om nieuwe leners te verwelkomen en tekst en uitleg te geven over de bibliotheek.

SELECT email
FROM borrowers 
WHERE dateenrolled BETWEEN <<Toegevoegd tussen (yyyy-mm-dd)|date>> 
      AND <<en (yyyy-mm-dd)|date>> AND branchcode=<<Locatie|branches>>
ORDER BY email ASC
|

Zoektermen zonder treffers

Met het onderstaande rapport krijg je een overzicht in een bepaalde periode van de gebruikte zoektermen die geen resultaat hebben opgeleverd. Dat kan helpen om ‘gaten’ in de collectie te dichten.

SELECT COUNT(*) AS Aantal,
       RIGHT(
              query_desc, 
              Length(query_desc) - Instr(query_desc, ':')
       ) AS 'Gezocht op', total
FROM   search_history
WHERE Total= 0
AND time BETWEEN <<Tussen (yyyy-mm-dd)|date>> AND <<en (yyyy-mm-dd)|date>>
GROUP  BY RIGHT(query_desc, Length(query_desc) - Instr(query_desc, ':'))
ORDER  BY COUNT(*) DESC
|

Thesaurus bekijken, bewerken, rapporten maken

Koha kent een aantal standaard thesauri en de mogelijkheid om zelf een thesaurus toe te voegen.

Onder Administratie – Thesaurustypes kun je zien welke thesauri in gebruik zijn, welke thesauruscode gebruikt wordt en ook welk veld wordt uitgelezen uit het bibliorecord. Ook de naamgeving kan hier worden aangepast.

Om alle termen uit een thesaurus op te vragen kun je altijd op de thesauruspagina de gewenste thesaurus selecteren en vervolgens op zoeken klikken. Je krijgt dan alle termen in een lijst, met daarbij aangegeven in hoeveel records de term wordt gebruikt. Je kunt daar termen samenvoegen, verwijderen of aanpassen.

Met een rapport kun je op een andere manier informatie uit je thesauri halen. Hier volgen enkele voorbeelden.

Een lijst met alle termen in de thesaurus persoonsnamen:

Rapport voor Persoonsnamen

SELECT authid,(ExtractValue(marcxml,'//datafield[\@tag=\"100\"]/*')) AS Term
FROM auth_header
WHERE  authtypecode='PERSO_NAME'
ORDER BY term ASC

Rapport voor Trefwoorden

SELECT authid,(ExtractValue(marcxml,'//datafield[\@tag=\"150\"]/*')) AS Term
FROM auth_header
WHERE  authtypecode='TOPIC_TERM'
ORDER BY term ASC

Met rapporten kun je ook lijsten maken van termen die niet in de thesaurus zijn opgenomen, maar die wel aan bibliorecords zijn toegevoegd, bijv. na een conversie. Aangezien elke thesaurustype andere velden in een bibliorecord gebruikt, is er ook per type een rapport.

Auteurs NIET in de thesaurus – velden 100, 110, 111, 130

SELECT DISTINCT biblionumber, Auteur FROM (
 SELECT biblionumber, ExtractValue(metadata,
'//datafield[@tag="100"]/subfield[@code="a"]') AS Auteur
 FROM biblio_metadata
 WHERE
  length(ExtractValue(metadata,
'//datafield[@tag="100"]/subfield[@code="a"]')) != 0 AND
  length(ExtractValue(metadata,
'//datafield[@tag="100"]/subfield[@code="9"]')) = 0
UNION
 SELECT biblionumber, ExtractValue(metadata,
'//datafield[@tag="110"]/subfield[@code="a"]') AS Auteur
 FROM biblio_metadata
 WHERE
  length(ExtractValue(metadata,
'//datafield[@tag="110"]/subfield[@code="a"]')) != 0 AND
  length(ExtractValue(metadata,
'//datafield[@tag="110"]/subfield[@code="9"]')) = 0
UNION
 SELECT biblionumber, ExtractValue(metadata,
'//datafield[@tag="111"]/subfield[@code="a"]') AS Auteur
 FROM biblio_metadata
 WHERE
  length(ExtractValue(metadata,
'//datafield[@tag="111"]/subfield[@code="a"]')) != 0 AND
  length(ExtractValue(metadata,
'//datafield[@tag="111"]/subfield[@code="9"]')) = 0
UNION
 SELECT biblionumber, ExtractValue(metadata,
'//datafield[@tag="130"]/subfield[@code="a"]') AS Auteur
 FROM biblio_metadata
 WHERE
  length(ExtractValue(metadata,
'//datafield[@tag="130"]/subfield[@code="a"]')) != 0 AND
  length(ExtractValue(metadata,
'//datafield[@tag="130"]/subfield[@code="9"]')) = 0
) AS heads
ORDER BY Auteur

Trefwoorden NIET in de thesaurus – veld 650

SELECT biblionumber, ExtractValue(metadata,'//datafield[@tag="650"]/subfield[@code="a"]') AS Trefwoord
FROM biblio_metadata
WHERE length(ExtractValue(metadata, '//datafield[@tag="650"]/subfield[@code="a"]')) != 0 
      AND length(ExtractValue(metadata, '//datafield[@tag="650"]/subfield[@code="9"]')) = 0
ORDER BY Trefwoord

Lokaal toegevoegde trefwoorden (NIET in de thesaurus) – veld 690

SELECT biblionumber, ExtractValue(metadata,'//datafield[@tag="690"]/subfield[@code="a"]') AS heading
FROM biblio_metadata
WHERE length(ExtractValue(metadata, '//datafield[@tag="690"]/subfield[@code="a"]')) != 0 
      AND length(ExtractValue(metadata, '//datafield[@tag="690"]/subfield[@code="9"]')) = 0
ORDER BY heading

Deze rapporten kunnen eenvoudig worden aangepast door het juiste veld te kiezen bij @tag=”123″

Overzicht Rapporten aanpassen

Als je veel rapporten gebruikt in Koha, kan het op een gegeven moment wat onoverzichtelijk worden. Je kunt rapporten in groepen onderverdelen voor wat meer structuur. De groepen kun je aanmaken op het moment dat je een rapport gaat maken of bewerken.

Het kan zijn dat je deze groepen op een later moment wil verwijderen of van naam veranderen. Dat kan via Administratie – Geautoriseerde waarden.

Hier kun je de gegevens aanpassen en indien nodig verwijderen.

Overzicht materiaal met status LOST

Een boek kwijt, een uitlening die al heel lang open staat? Geef een exemplaar de status LOST en het exemplaar kan niet meer worden aangevraagd of gereserveerd. Wordt het exemplaar weer ingenomen, dan wordt automatisch de status LOST verwijderd.

Met het onderstaande rapport kun je snel zien welke exemplaren de status LOST hebben:

SELECT items.itemnumber,items.biblionumber,CONCAT('<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',biblioitems.biblioitemnumber,'\">',title,'</a>') AS Titel,items.itemcallnumber AS Siso,items.barcode,items.itemlost_on AS 'Zoek sinds',items.homebranch AS Bibliotheek 
FROM items 
LEFT JOIN biblioitems on (items.biblioitemnumber=biblioitems.biblioitemnumber) 
LEFT JOIN biblio on (biblioitems.biblionumber=biblio.biblionumber)   
WHERE items.homebranch=<<homebranch|branches>> AND items.itemlost='1' 
ORDER BY items.itemcallnumber asc

In dit voorbeeld is er gesorteerd op plaatsnummer (items.itemcallnumber), maar dat kan bijv. ook op datum. Gebruik dan ‘ORDER BY items.itemlost_on DESC’ voor een overzicht met de meeste recente melding eerst.

|

Een type bericht selecteren

Het onderstaande rapport is een snelle manier om te zien welke berichten, zoals aanmaningen, in een bepaalde periode zijn verzonden.

SELECT CONCAT('<a href=\"/cgi-bin/koha/members/notices.pl?borrowernumber=',message_queue.borrowernumber,'\" target=blank>', message_queue.borrowernumber, '</a>') AS Lenernummer,
   message_queue.letter_code AS 'Soort bericht',
   monthname(message_queue.time_queued) AS Maand, 
   year(message_queue.time_queued) AS Jaar
FROM message_queue 
WHERE message_queue.time_queued between <<Verstuurd tussen|date>> and <<en|date>> 
      AND message_queue.letter_code LIKE <<Gebruik ODUE, ODUE_2, ODUE_3, HOLD, PREDUE (gebruik % als wildcard)>>
      AND status = 'sent'

Met het rapport kun je selecteren op de verschillende typen berichten, zoals die gedefinieerd zijn onder Hulpmiddelen – Berichten en bonnen:

Bij het uitvoeren van het rapport kun je een datumbereik opgeven en het berichttype. Je kunt % als wildcard gebruiken, bijv., ODUE% voor alle aanmaningen.

Het resultaat is een lijst met aanklikbare lenernummers met vermelding van het type bericht en in welke maand het bericht is verzonden.

De link met het lenernummer stuurt je door naar de pagina met lenergegevens en dan specifiek naar het overzicht van reeds verzonden berichten.

Klik op een bericht voor de details en de optie om het bericht opnieuw te verzenden.

|

Overzicht leners met reserveringen

Voor een snel overzicht van openstaande reserveringen kun je het onderstaande rapport gebruiken. Onder openstaande reserveringen vallen ook de boeken die voor de lener klaar staan om afgehaald te worden, de reservering is immers nog niet volledig afgehandeld tot het moment van uitlenen.

SELECT 
CONCAT(
        '<a href=\"/cgi-bin/koha/circ/circulation.pl?borrowernumber=',
        borrowernumber,
        '\">',
        surname,
        ', ',
        firstname,
        '</a>'
    ) AS Lener,
borrowers.cardnumber as Lenernummer, reserves.reservedate AS 'Datum reservering', biblio.title as Titel, IF(itemnumber IS NULL, 'Eerst beschikbare',barcode) AS 'Specifiek Exemplaar'
FROM reserves
LEFT JOIN borrowers USING (borrowernumber)
LEFT JOIN biblio USING (biblionumber)
LEFT JOIN biblioitems USING (biblionumber)
LEFT JOIN items USING (itemnumber)
WHERE reserves.branchcode=<<Bibliotheek|branches>>
ORDER BY reserves.reservedate desc
|

Uitleencijfers

Er is een rapport waarmee de uitleencijfers per maand kunnen worden uitgelezen. Per maand worden de cijfers verzameld van uitleningen, verlengingen en het aantal ingeleverde boeken (issue, renew, return).

SELECT DISTINCT 
  CONCAT('<strong>',s.type,'</strong>')       AS ' ', 
  CONCAT('<em>',b.branchname,'</em>')       AS 'Bibliotheek', 
  SUM(IF(MONTHNAME(s.datetime) = 'January',  1, 0)) AS 'Januari',
  SUM(IF(MONTHNAME(s.datetime) = 'February',   1, 0)) AS 'Februari',
  SUM(IF(MONTHNAME(s.datetime) = 'March',    1, 0)) AS 'Maart', 
  SUM(IF(MONTHNAME(s.datetime) = 'April',    1, 0)) AS 'April',
  SUM(IF(MONTHNAME(s.datetime) = 'May',    1, 0)) AS 'Mei',
  SUM(IF(MONTHNAME(s.datetime) = 'June',     1, 0)) AS 'Juni',
  SUM(IF(MONTHNAME(s.datetime) = 'July',     1, 0)) AS 'Juli',
  SUM(IF(MONTHNAME(s.datetime) = 'August',   1, 0)) AS 'Augustus',
  SUM(IF(MONTHNAME(s.datetime) = 'September',  1, 0)) AS 'September',
  SUM(IF(MONTHNAME(s.datetime) = 'October',  1, 0)) AS 'Oktober',
  SUM(IF(MONTHNAME(s.datetime) = 'November',   1, 0)) AS 'November',
  SUM(IF(MONTHNAME(s.datetime) = 'December',   1, 0)) AS 'December',
  COUNT(*)            AS 'Totaal',
  CONCAT('<strong>',s.type,'</strong>')       AS ' '
FROM  statistics s, branches b
WHERE s.branch = b.branchcode
AND s.type IN ('renew', 'return', 'issue') 
AND YEAR(s.datetime)=@CurrentYear:=<<Jaar>> 
GROUP BY  b.branchname, s.type 
UNION 
SELECT 
  NULL AS ' ', 
  NULL AS 'BRANCH', 
  NULL AS 'January',
  NULL AS 'February',
  NULL AS 'March', 
  NULL AS 'April',
  NULL AS 'May',
  NULL AS 'June',
  NULL AS 'July',
  NULL AS 'August',
  NULL AS 'September',
  NULL AS 'October',
  NULL AS 'November',
  NULL AS 'December',
  NULL AS 'Totaal', 
  NULL AS ' '
UNION 
SELECT DISTINCT 
  CONCAT('<strong>',c.type,'</strong>')       AS ' ',  
  '<em>ALL BRANCHES</em>'         AS 'BRANCH', 
  SUM(IF(MONTHNAME(c.datetime) = 'January',  1, 0)) AS 'Januari',
  SUM(IF(MONTHNAME(c.datetime) = 'February',   1, 0)) AS 'Februari',
  SUM(IF(MONTHNAME(c.datetime) = 'March',    1, 0)) AS 'Maart', 
  SUM(IF(MONTHNAME(c.datetime) = 'April',    1, 0)) AS 'April',
  SUM(IF(MONTHNAME(c.datetime) = 'May',    1, 0)) AS 'Mei',
  SUM(IF(MONTHNAME(c.datetime) = 'June',     1, 0)) AS 'Juni',
  SUM(IF(MONTHNAME(c.datetime) = 'July',     1, 0)) AS 'Juli',
  SUM(IF(MONTHNAME(c.datetime) = 'August',   1, 0)) AS 'Augustus',
  SUM(IF(MONTHNAME(c.datetime) = 'September',  1, 0)) AS 'September',
  SUM(IF(MONTHNAME(c.datetime) = 'October',  1, 0)) AS 'Oktober',
  SUM(IF(MONTHNAME(c.datetime) = 'November',   1, 0)) AS 'November',
  SUM(IF(MONTHNAME(c.datetime) = 'December',   1, 0)) AS 'December',
  CONCAT('<strong>',COUNT(*),'</strong>')     AS 'Totaal', 
  CONCAT('<strong>',c.type,'</strong>')       AS ' '
FROM  statistics c 
WHERE c.type IN ('renew', 'return', 'issue') 
AND YEAR(c.datetime) = @CurrentYear 
GROUP BY c.type

End of content

End of content