Valmiita SQL-raportteja » Historia » Versio 81

« Edellinen - Versio 81/84 (eroavuus) - Seuraava » - Nykyinen versio
Anneli Österman, 09.07.2019 10:14


Valmiita SQL-raportteja

Tänne voi tallentaa valmiita SQL-raportteja. Laita raportti olemassa olevien otsikoiden alle tai lisää uusi otsikko, jos mikään ei sovellu tarkoitukseen.

Lainat

Anonyymit lainat

Tällä raportilla saadaan selville lainaaja, vaikka hän olisi määritellyt yksityisyysasetuksissa ettei halua lainahistoriaansa näkyviin.
Raporttiin luetaan niteen viivakoodi ja se näyttää kaikki "yksityiset" asiakkaat palautusajan mukaan laskevasti.

select DATE_FORMAT(s.datetime, '%d.%m.%Y %T') as 'Palautusaika',  
CONCAT('<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',bi.biblionumber,'\">',bi.title,'</a>') AS 'Nimeke', 
CONCAT('<a href=\"/cgi-bin/koha/circ/circulation.pl?borrowernumber=',b.borrowernumber,'\">',b.firstname,' ',b.surname,'</a>') AS 'Lainaaja' 
from borrowers b
join statistics s on b.borrowernumber = s.borrowernumber
join items i on i.itemnumber = s.itemnumber
join biblio bi on i.biblionumber = bi.biblionumber
where b.privacy = 2 and s.type = 'return' and barcode=<<barcode>> order by s.datetime desc


Ylen lainat

Lainatilasto Ylen aineistojen lainoista kirjaston ja aikavälin mukaan nimekkeittäin.

SELECT b.author AS 'Tekijä', b.title AS 'Nimeke', ExtractValue(bi.marcxml,'//datafield[@tag="245"]/subfield[@code="n"]') AS 'Osa', 
bi.ean AS 'EAN', bi.publicationyear AS 'Vuosi', i.itype AS 'Aineistolaji', count(s.itemtype) AS 'Lainat'
FROM statistics s
LEFT JOIN items i ON i.itemnumber = s.itemnumber
LEFT JOIN biblioitems bi ON i.biblionumber=bi.biblionumber
LEFT JOIN biblio b ON b.biblionumber=i.biblionumber
WHERE s.datetime >= <<Alkupvm|date>> AND
      s.datetime <= DATE_ADD(DATE(<<Loppupvm|date>>), INTERVAL 1 DAY) AND
      s.type IN ('issue', 'renew') AND
      bi.editionresponsibility like '%yle%' AND
      s.usercode NOT IN ('EITILASTO', 'KAUKOLAINA') AND
      s.branch = <<Kirjasto|branches>>
GROUP BY b.biblionumber
ORDER BY 1,2,3

Asiakkaat

Celia-lainaajat

Celia-aineistoa lainanneiden asiakkaiden lukumäärä aikavälin ja pisteen mukaan. Vaihda 'DAISY'-aineistolajilyhenteen tilalle oma Celia-lyhenne!

SELECT count(distinct s.borrowernumber) as 'Celia-lainaajien lukumäärä'
FROM statistics s
JOIN items i ON i.itemnumber = s.itemnumber
WHERE date(s.datetime) BETWEEN  (@AloitusPvm:= <<AloitusPvm |date>>) AND (@LopetusPvm:= <<LopetusPvm |date>>)
AND convert(s.branch using 'utf8') = (@Kirjastopiste:= <<Kirjastopiste |branches>>)
AND i.itype  = 'DAISY'
AND s.type IN ('issue', 'renew')

Epäonnistuneet tekstiviestit

Listaa valitulta aikaväliltä viestijonosta ne viestit, jotka on yritetty lähettää tekstiviestinä ja lähetys on epäonnistunut jostain syystä. Listalle tulee asiakkaan nimi, kirjastokortin numero linkkinä asiakastietoon (muokkaa linkkiin oman kimppasi osoite), tekstiviesti numeroon -tieto, status, epäonnistumisen syy, viestin aihe, viestin sisältö, jonoonlisäämisaika ja asiakkaalla olevat viestit (näkee siis, onko hänellä jo huomautus virheellisestä puhnumerosta).

Lisääjä: Anneli Österman / OUTI-kirjastot

SELECT Concat(borrowers.surname, ', ', borrowers.firstname, '<br/>', '<a href=\"/cgi-bin/koha/members/moremember.pl?borrowernumber=',borrowers.borrowernumber,'">',borrowers.cardnumber,'</a>') AS 'Asiakas', borrowers.smsalertnumber AS 'Numero', status AS 'Status', delivery_note AS 'Huomatus', subject AS 'Aihe', content AS 'SMS-viesti', time_queued AS 'Jonotusaika', messages.message AS 'Viesti asiakastiedoissa'
FROM message_queue
LEFT JOIN borrowers ON borrowers.borrowernumber = message_queue.borrowernumber
LEFT JOIN messages ON message_queue.borrowernumber = messages.borrowernumber
WHERE message_transport_type = 'sms' 
AND (status = 'failed') 
AND time_queued >= NOW() - INTERVAL <<Monenko päivän ajalta>> DAY 
ORDER BY time_queued ASC

Ylimääräistä tekstiä sisältävät puhelinnumerot

Hakee kaikki ylimääräistä tekstiä sisältävät puhelinnumerot Kohan borrowers-taulusta. Tekstejä on päätynyt puhelinnumerokenttiin ainakin Pallas-konversioissa. Mahdollisesti myös Origoista.

Lisääjä: Pasi Korkalo / Koha-Suomi
Pvm: 8.1.2019

SELECT CONCAT('<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=', borrowernumber, '">', cardnumber, '</a>') AS borrower, phone, mobile, smsalertnumber FROM borrowers
 WHERE LOWER(phone) REGEXP '.*[a-z].*'
    OR LOWER(mobile) REGEXP '.*[a-z].*'
    OR LOWER(smsalertnumber) REGEXP '.*[a-z].*'

Varaukset

Tietueen varaushistoria

Listaa valitulta aikaväliltä tietueen varaukset, jotka eivät ole enää voimassa. Voimassa olevat voi katsoa tietueen varauksista.

SELECT o.reservedate, o.branchcode, o.borrowernumber, o.waitingdate, o.expirationdate, i.barcode
FROM old_reserves o
JOIN items i USING (itemnumber)
WHERE o.biblionumber =<<Tietuenumero>>
AND date(o.reservedate) BETWEEN <<Alkupvm|date>> AND <<Loppupvm|date>>
ORDER BY o.reservedate DESC

Nimekkeet, joihin on eniten varauksia

Varausten määrä kannattaa rajata (esim. 50), jotta et saa tulokseksi kaikkia mahdollisia nimekkeitä, joihin on olemassa varaus. Mukaan tulee myös tietueeseen liittyvä nidemäärä. Tuloksessa mukana myös hankinnassa olevat niteet.

Lisääjä: Anneli Österman / OUTI-kirjastot

SELECT concat('<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'">',b.title,'</a>') AS Nimeke, b.author AS Tekijä, m.cn_class AS Luokka, m.itemtype AS Aineistolaji, count(h.reservedate) AS 'Varaukset', (select count(*) from items where biblionumber=b.biblionumber) AS 'Niteiden määrä'
FROM biblio b
LEFT JOIN biblioitems m USING (biblionumber)
LEFT JOIN reserves h ON (b.biblionumber=h.biblionumber)
GROUP BY b.biblionumber 
HAVING count(h.reservedate)  >= <<Varauksia vähintään>>
ORDER by Varaukset DESC

Eniten uusia varauksia, top20

Raportilla voi hakea top20-listan teoksista, joihin on tehty eniten varauksia seitsemän viime päivän aikana.

Lisääjä: Anneli Österman / OUTI-kirjastot
Pvm: 25.10.2018

SELECT count(distinct reserve_id) AS 'Varauksia', title AS 'Teos', author AS 'Tekijä', cn_class AS 'Luokka'
FROM (
SELECT b.title, b.author, b.biblionumber, reserves.reserve_id, bi.cn_class
FROM reserves 
left JOIN biblio b ON (reserves.biblionumber=b.biblionumber)
JOIN borrowers ON (reserves.borrowernumber=borrowers.borrowernumber)
JOIN biblioitems bi ON(b.biblionumber=bi.biblionumber)
WHERE DATE(reserves.reservedate) > DATE_SUB(CURRENT_DATE(),INTERVAL 7 DAY) 
      AND DATE(reserves.reservedate) <=CURRENT_DATE()
AND borrowers.categorycode !='EITILASTO'
UNION ALL
SELECT b.title, b.author, b.biblionumber, old_reserves.reserve_id, bi.cn_class
FROM old_reserves 
left JOIN biblio b ON (old_reserves.biblionumber=b.biblionumber)
JOIN borrowers ON (old_reserves.borrowernumber=borrowers.borrowernumber)
JOIN biblioitems bi ON(b.biblionumber=bi.biblionumber)
WHERE DATE(old_reserves.reservedate) > DATE_SUB(CURRENT_DATE(),INTERVAL 7 DAY) 
      AND DATE(old_reserves.reservedate) <=CURRENT_DATE()
AND borrowers.categorycode !='EITILASTO'
 ) AS myholds 
GROUP BY biblionumber 
ORDER BY 1 DESC 
LIMIT 20;

Varauksen tiedot lokilla

Raportilla voi tarkistaa, mitä tietoja varauksesta on tallentunut action_logs-tauluun. Parametreinä käytetään asiakkaan borrowernumberia ja teoksen biblionumberia. Jos varaus on edelleen voimassa, vaihda old_reserves-taulu reserves-tauluksi.

Lisääjä: Anneli Österman
Pvm: 20.3.2019

select * from action_logs where object in (select reserve_id from old_reserves where borrowernumber=<<borrowernumber>> and biblionumber=<<biblionumber>>) and module='HOLDS';

HUOM! Jos haluat tutkia voimassa olevan varauksen tietoja, niin vaihda tauluksi reserves.

Varauslista Finna-muotoon

Raportilla voi hakea varaukset ja tallentaa ne Finnassa näkyvään muotoon. Varausten määrä rajoitettu 25:een, voit muuttaa määrää korvaamalla LIMIT-kohdassa olevan numeron.

Lisääjä: Päivi Knuutinen / Vaara
Pvm: 3.12.2018

SELECT
b.biblionumber AS 'biblionumber',
count(h.reservedate) AS 'Varauksia'
FROM biblio b
LEFT JOIN biblio_metadata m USING (biblionumber)
LEFT JOIN reserves h ON (b.biblionumber=h.biblionumber)
GROUP BY b.biblionumber
ORDER BY Varauksia DESC
LIMIT 25


Kokoelma

Niteettömät nimekkeet

Raportilla voi hakea niteettömät nimekkeet. Raportissa annetaan parametriksi aineistolaji. Jos haluat listata kaikki niteettömät kerralla aineistolajista riippumatta, poista raportista alimmainen rivi.

Lisääjä: Anneli Österman / OUTI-kirjastot
Pvm: 3.7.2019

SELECT CONCAT(b.title, ', ', '<br/>', '<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'\">',b.biblionumber,'</a>') AS 'Teos',
bi.itemtype AS 'Aineistolaji', b.biblionumber
from biblio b
LEFT JOIN items i ON b.biblionumber = i.biblionumber
LEFT JOIN biblioitems bi ON bi.biblionumber = b.biblionumber
LEFT JOIN biblio_metadata bm ON bm.biblionumber = b.biblionumber
WHERE ExtractValue(bm.metadata,'//datafield[@tag="773"]/subfield[@code="w"]') = ''
AND i.itemnumber IS NULL
AND bi.itemtype=<<Valitse aineistolaji|itemtypes>>

Weeding tool

"Weeding toolilla" voi tutkia esim. nollalainoja kirjaston, aineistolajin, hyllypaikan mukaan. Tehty Koha Reports Libraryn raportin pohjalta.

Lisääjä: Anneli Österman / OUTI-kirjastot

SELECT CONCAT( '<a href=\"/cgi-bin/koha/cataloguing/additem.pl?biblionumber=', biblio.biblionumber,'\">', 
       items.barcode, '</a>' ) AS 'Viivakoodi', items.cn_sort AS 'Luokka ja pääsana', biblio.title AS 'Nimeke', items.ccode AS 'Kokoelma',
       biblioitems.publicationyear AS 'Julkaisuvuosi', items.dateaccessioned AS 'Viimeksi nähty', items.itype AS 'Aineistolaji', 
       items.issues AS 'Lainat', items.renewals AS 'Uusinnat', (IFNULL(items.issues, 0)+IFNULL(items.renewals, 0)) AS 'Lainat ja uusinnat yhteensä', 
       items.datelastborrowed AS 'Viimeksi lainattu', items.itemlost AS 'Kadonnut', items.onloan AS 'Lainassa', items.damaged AS 'Vaurioitunut', items.itemnotes AS 'Huomautukset'
FROM items
LEFT JOIN biblioitems ON (items.biblioitemnumber=biblioitems.biblioitemnumber) 
LEFT JOIN biblio ON (biblioitems.biblionumber=biblio.biblionumber)
WHERE items.itype= <<Aineistolaji|itemtypes>> AND items.holdingbranch=<<Sijaintikirjasto|branches>> 
      AND items.cn_sort BETWEEN <<Luokka väliltä, alkaen>> AND <<päättyen>>
AND items.location=<<Hyllypaikka|LOC>>
AND items.issues< <<Lainoja vähemmän kuin>>
AND items.datelastborrowed< <<Viimeksi lainattu aikaisemmin kuin|date>>
ORDER BY 10,2

Kadonneet niteet kirjaston ja hyllypaikan mukaan

Raportti listaa kadonneet niteet kirjaston ja hyllypaikan mukaan.

SELECT concat('<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'">',b.title,'</a>') AS Nimeke, b.author AS Tekijä, b.serial AS Sarja, b.seriestitle AS Sarjanimeke, i.itemcallnumber AS Signum, i.barcode AS Viivakoodi, i.itype AS Aineistolaji, i.holdingbranch AS Kirjasto, i.datelastseen AS 'Viimeksi nähty', i.itemlost_on AS 'Kadonneeksi merkitty' 
FROM items i
LEFT JOIN biblio b ON (i.biblionumber=b.biblionumber) 
LEFT JOIN authorised_values v ON (i.itemlost=v.authorised_value) 
WHERE i.itemlost != 0 AND i.itemlost = 1 AND v.category='LOST'
AND i.holdingbranch = <<Viimeisin havaintokirjasto|branches>>
AND i.location = <<Hyllypaikka|LOC>>
ORDER BY 7,5

Poistojen apuväline

Lista, jossa on mm. lainamäärät sekä viimeiset havaintopäivät valitun kirjaston, aineistolajin, hyllypaikan ja luokan mukaan. Luokka-kohtaan täytyy jälkimmäiseen laatikkoon laittaa haluttua luokkaa seuraava luokka.

SELECT CONCAT( '<a href=\"/cgi-bin/koha/cataloguing/additem.pl?biblionumber=', biblio.biblionumber,'\">',
       items.barcode, '</a>' ) AS 'Viivakoodi', items.barcode AS 'Viivakoodi', items.itemcallnumber AS 'Luokka', items.ccode AS 'Kokoelma', biblio.author AS 'Tekijä', biblio.title AS 'Nimeke', 
ExtractValue(biblioitems.marcxml,'//datafield[@tag="245"]/subfield[@code="b"]') AS 'Muu nimeke', 
ExtractValue(biblioitems.marcxml,'//datafield[@tag="362"]/subfield[@code="a"]') AS 'numero', 
       biblio.copyrightdate AS 'Vuosi', items.dateaccessioned AS 'Hankittu', items.itype AS 'aineistolaji', 
       items.issues AS 'Lainoja', items.renewals AS 'Uusintoja', (IFNULL(items.issues, 0)+IFNULL(items.renewals, 0)) AS 'Lainoja_yht.', 
       items.datelastborrowed AS 'Viimeksi_lainattu', items.datelastseen AS 'Viimeksi_havaittu', items.itemlost AS 'Kadonnut', items.onloan AS 'Lainassa', items.itemnotes AS 'Nidehuomautus'
FROM items
LEFT JOIN biblioitems ON (items.biblioitemnumber=biblioitems.biblioitemnumber) 
LEFT JOIN biblio ON (biblioitems.biblionumber=biblio.biblionumber)
WHERE items.itype= <<Aineistolaji|itemtypes>> AND items.homebranch=<<Kirjastopiste|branches>> AND items.location=<<Hyllypaikka|LOC>>
     AND items.itemcallnumber BETWEEN <<Luokka välillä>> AND <<ja>>
ORDER BY items.itemcallnumber

Lähtevien kuljetusten määrä

Parametreiksi valitaan lähettäjäkirjasto ja vuosi (kirjoita vuosilukuja perään prosenttimerkki, esim. 2018%). Tulokset jaotellaan kuukausittain.

Tehnyt: Anneli Österman 27.2.2019

select month(datesent) as 'Kuukausi',count(*) as 'Lähetettyjä niteitä'
from branchtransfers 
where frombranch=<<Lähettäjäkirjasto|branches>>
and datesent like <<Kirjoita vuosi ja prosenttimerkki>>
group by month(datesent)

Saapuvien kuljetusten määrä

Parametreiksi valitaan vastaanottajakirjasto ja vuosi (kirjoita vuosilukuja perään prosenttimerkki, esim. 2018%). Tulokset jaotellaan kuukausittain.

Tehnyt: Anneli Österman 27.2.2019

select month(datesent) as 'Kuukausi' ,count(*) as 'Vastaanotetut niteet'
from branchtransfers 
where tobranch=<<Vastaanottajakirjasto|branches>>
and datesent like <<Kirjoita vuosi ja prosenttimerkki>>
group by month(datesent)

Laskutus

Laskutettavat niteet (OUTI)

Lista niteistä ja asiakkaista, jotka ovat menossa laskutukseen. Ne niteet, joita ei haluta laskuttaa, muokataan niteen muokkauksessa "Ei laskuteta" -tilaan. Kirjastorajaus perustuu kirjastoryhmiin. Jos "Laskutettu"-tila on jotain muuta kuin "6" tai "Ei laskuteta"-tila muuta kuin "8", muuta ne kohtaan "AND i.notforloan not in (6,8)".

Lisääjä: Anneli Österman / OUTI-kirjastot

SELECT 
    p.categorycode AS 'Asiakaslaji',
    Concat(p.surname, ', ', p.firstname, '<br/>', '<a href=\"/cgi-bin/koha/members/moremember.pl?borrowernumber=',p.borrowernumber,'">',p.cardnumber,'</a>') AS 'Nimi',
    Concat(g.surname, ', ', g.firstname, '<br/>', '<a href=\"/cgi-bin/koha/members/moremember.pl?borrowernumber=',g.borrowernumber,'">',g.cardnumber,'</a>') AS 'Takaaja',
    Concat_ws(' ',
        IF(LENGTH(p.address),p.address,NULL),
        IF(LENGTH(p.zipcode),p.zipcode,NULL),
        '\n',
        IF(LENGTH(p.city),p.city,NULL)
    ) AS 'Osoite',
    (SELECT attribute FROM borrower_attributes WHERE code = 'SSN' AND borrowernumber = c.borrowernumber) AS SSN,
    Concat_ws(' - ',
        IF(LENGTH(b.author),b.author,NULL),
        IF(LENGTH(b.title),b.title,NULL)
    ) AS 'Teos',
    i.itemcallnumber AS 'Hyllypaikka', 
    Concat('<a href=\"/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=',i.biblionumber,'&itemnumber=',i.itemnumber,'">',i.barcode,'</a>') AS 'Viivakoodi',
    i.replacementprice AS 'Korvaus',
    (TO_DAYS(curdate())-TO_DAYS( date_due)) AS 'Myöhässä' ,
    c.branchcode as 'Lainauspaikka',
    it.description as 'Aineistolaji',    
    i.holdingbranch AS 'Havaintopaikka'
FROM issues c
LEFT JOIN borrowers p ON (p.borrowernumber=c.borrowernumber) 
LEFT JOIN items i ON (c.itemnumber=i.itemnumber) 
LEFT JOIN itemtypes it ON (i.itype = it.itemtype)
LEFT JOIN biblio b ON (i.biblionumber=b.biblionumber) 
LEFT JOIN borrowers g ON (p.guarantorid=g.borrowernumber)
LEFT JOIN branchrelations br ON (c.branchcode = br.branchcode)
LEFT JOIN branchcategories bc ON (br.categorycode = bc.categorycode)
WHERE (TO_DAYS(curdate())-TO_DAYS(date_due)) >= 60
AND bc.categorycode = <<Kirjastoryhmä|branchcategories>>
AND p.categorycode not in ('AUTOM','EITILASTO','VIRKAILIJA')
AND i.notforloan not in (6,8)
GROUP BY i.itemnumber
ORDER BY p.surname, p.firstname

Palautetut laskutetut niteet (OUTI)

Raportilla voi seurata niteitä, jotka on palautettu, mutta ovat edelleen laskutettu-tilassa. Kirjastorajaus perustuu kirjastoryhmiin. Jos Laskutettu-tila on jokin muu kuin "6", muuta se oikeaksi kohdassa "and i.notforloan = 6".

Lisääjä: Anneli Österman / OUTI-kirjastot

select Concat(b.surname, ', ', b.firstname, '<br/>', '<a href=\"/cgi-bin/koha/members/moremember.pl?borrowernumber=',b.borrowernumber,'">',b.cardnumber,'</a>') AS 'Nimi', 
Concat('<a href=\"/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=',i.biblionumber,'&itemnumber=',i.itemnumber,'">',i.barcode,'</a>') AS 'Viivakoodi',
iss.date_due AS 'Eräpäivä', 
iss.branchcode, 
iss.returndate AS 'Palautuspäivä' 
from old_issues iss, items i, borrowers b,
(select i.itemnumber, max(o.issue_id) as issue_id
from old_issues o, items i
where o.branchcode in (select distinct a.branchcode from branchrelations a, branchcategories b where a.categorycode = <<Kirjastoryhma|branchcategories>> and b.show_in_pulldown=0 and a.categorycode = b.categorycode)
and DATE(o.returndate) between DATE(<<Palautuspäiväväli|date>>) and DATE(<<Palautuspäiväväli|date>>)
and i.notforloan = 6
and i.itemnumber = o.itemnumber
group by i.itemnumber) d
where b.borrowernumber = iss.borrowernumber
and i.itemnumber = iss.itemnumber
and iss.issue_id = d.issue_id
and iss.itemnumber = d.itemnumber

Palautetut Ei laskuteta -niteet (OUTI)

Raportilla voi seurata palautettuja "Ei laskuteta" -tilassa olevia niteitä. Kirjastorajaus perustuu kirjastoryhmiin. Jos "Ei laskuteta" -tila on muuta kuin "8", muuta se kohtaan "and i.notforloan = 8".

Lisääjä: Anneli Österman / OUTI-kirjastot

select Concat(b.surname, ', ', b.firstname, '<br/>', '<a href=\"/cgi-bin/koha/members/moremember.pl?borrowernumber=',b.borrowernumber,'">',b.cardnumber,'</a>') AS 'Nimi', 
Concat('<a href=\"/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=',i.biblionumber,'&itemnumber=',i.itemnumber,'">',i.barcode,'</a>') AS 'Viivakoodi',
iss.date_due, iss.branchcode, iss.returndate 
from old_issues iss, items i, borrowers b,
(select i.itemnumber, max(o.issue_id) as issue_id
from old_issues o, items i
where o.branchcode in (select distinct a.branchcode from branchrelations a, branchcategories b 
where a.categorycode = <<Kirjastoryhmä|branchcategories>> and b.show_in_pulldown=0 and a.categorycode = b.categorycode)
and DATE(o.returndate) between DATE(<<Palautuspäiväväli|date>>) and DATE(<<Palautuspäiväväli|date>>)
and i.notforloan = 8
and i.itemnumber = o.itemnumber
group by i.itemnumber) d
where b.borrowernumber = iss.borrowernumber
and i.itemnumber = iss.itemnumber
and iss.issue_id = d.issue_id
and iss.itemnumber = d.itemnumber

Maksut

Ceepos-verkkomaksujen tulot kirjastoittain

Erotellaan kirjastoittain kaikki verkkomaksuista kertyneet tulot. Toimii vain Ceepos-verkkomaksujen kanssa. Ei esim. Finna-Paytrail-maksujen kanssa.

SELECT Verkkomaksutulot, branch, branchcity, branchphone FROM (SELECT CAST(SUM(payments.paid_price_cents)/100.00 as decimal(19,2)) AS Verkkomaksutulot, IF(homebranch IS NULL, user_branch, homebranch) AS branch FROM 
    (SELECT DISTINCT payments_transactions_accountlines.transaction_id, payments_transactions.borrowernumber, status, paid_price_cents, payments_transactions_accountlines.accountlines_id, accountlines.itemnumber, payments_transactions.user_branch FROM payments_transactions, payments_transactions_accountlines, accountlines 
    WHERE payments_transactions.is_self_payment=1 
    AND payments_transactions.transaction_id=payments_transactions_accountlines.transaction_id
    AND payments_transactions.status='paid'
    AND accountlines.accountlines_id=payments_transactions_accountlines.accountlines_id
        AND date(payments_transactions.timestamp) BETWEEN <<Alkupäivä|date>> AND <<Loppupäivä|date>> ) AS payments
LEFT JOIN items
ON payments.itemnumber=items.itemnumber
GROUP BY branch) AS tulot
LEFT JOIN branches
ON(tulot.branch=branches.branchcode COLLATE utf8_general_ci)
ORDER BY branchcity

Asiakkaiden maksut maksutyypin mukaan aikaväliltä

Muuta: Tämä raportti hakee tietyltä aikaväliltä käsiteltyjä maksuja. Käsittely voi tarkoittaa joko maksun luomista tai päivittämistä (maksamista).

Maksutunnukset:
F (myöh.maksut)
FU (myöh.maksut)
HE (noutamaton varaus)
ODUE1
ODUE2
ODUE3 (myöhästymismuistutuksia)
L (kadonnut aineisto, aineiston korvaus)
Korva (aineiston korvaus)
N (uusi kortti)
M (sekalainen)
Kopio (kopio)
Kauko (kaukolainat)
A (käyttäjätilin hallinta)
Konve (konvertoidut maksut esim. OUTI ja Lappi)

Lisääjä: Päivi Knuutinen / Vaara-kirjastot
pvm: 30.10.2018

SELECT CONCAT('<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=', accountlines.borrowernumber, '">', accountlines.borrowernumber, '</a>') AS asiakas,
       CONCAT('<a href="/cgi-bin/koha/catalogue/moredetail.pl?type=&itemnumber=', accountlines.itemnumber, '">', accountlines.itemnumber, '</a>') AS Item, 
  accountlines.*
FROM accountlines
WHERE date(accountlines.timestamp) BETWEEN <<Alkupäivä|date>> AND <<Loppupäivä|date>> 
AND accounttype=<<Kohan maksutunnus>> 
AND amountoutstanding>0
ORDER BY accountlines_id

Vanhentuneet maksut

SELECT CONCAT('<a href="/cgi-bin/koha/members/boraccount.pl?borrowernumber=', accountlines.borrowernumber, '">', accountlines.borrowernumber, '</a>') AS borrowernumberi,
accountlines.*,
borrowers.* 
FROM accountlines, borrowers WHERE accountlines.amountoutstanding > 0 
AND accountlines.date<NOW()-INTERVAL 3 YEAR 
AND accountlines.borrowernumber LIKE <<borrowernumber TAI syötä %-merkki jos haluat kaikki>> 
AND accountlines.accounttype LIKE <<accounttype TAI syötä %-merkki jos haluat kaikki>> 
AND accountlines.borrowernumber=borrowers.borrowernumber 
AND borrowers.branchcode=<<Lainauskirjasto|branches>> 
GROUP BY borrowernumberi 
ORDER BY DATE DESC

Raportti näyttää maksut, jotka on luotu vähintään 3 vuotta sitten. Maksuja voi rajata borrowernumberilla tai maksun tyypillä (accounttype). Merkitse % jos haluat valita kaikki borrowernumberit ja/tai maksutyypit.

Lisääjä: Päivi Knuutinen / VAARA 5.2.2019


Luettelointi

Viimeksi lisätyt osakohteet

Raportilla voi hakea 300 viimeisimmän osakohteen tietuenumeron.

Lisääjä: Anneli Österman / OUTI-kirjastot
Pvm: 28.11.2018

SELECT b.biblionumber
FROM biblio b
LEFT JOIN biblio_metadata bm ON b.biblionumber = bm.biblionumber
WHERE ExtractValue(bm.metadata,'//datafield[@tag="773"]/subfield[@code="w"]') != ''
AND ExtractValue(bm.metadata,'//datafield[@tag="337"]/subfield[@code="a"]') = <<Kirjoita tyyppi>>
ORDER BY b.biblionumber DESC LIMIT 300

Osakohde merkitty monografiaksi

Lisääjä: Anneli Österman / OUTI-kirjastot
Pvm: 26.6.2019

SELECT CONCAT(b.title, ', ', '<br/>', '<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'\">',b.biblionumber,'</a>') AS 'Teos',
bi.itemtype AS 'Aineistolaji', bi.biblionumber AS 'Biblionro'
from biblio b
LEFT JOIN items i ON b.biblionumber = i.biblionumber
LEFT JOIN biblioitems bi ON bi.biblionumber = b.biblionumber
LEFT JOIN biblio_metadata bm ON bm.biblionumber = b.biblionumber
WHERE ExtractValue(bm.metadata,'//datafield[@tag="773"]/subfield[@code="w"]') != ''
AND i.itemnumber IS NULL
AND SUBSTR(ExtractValue(bm.metadata,'//leader'),8,1) NOT IN ('a', 'b', 'd')

Kuljetukset

Lähtökirjastossa kuljetuksessa olevat

Näyttää kuljetukset jotka eivät ole saapuneet perille, halutusta kirjastosta, järjestäen vanhemmat kuin 7 päivää ensimmäiseksi.

SELECT
   IF(bt.datesent < DATE_SUB(NOW(), INTERVAL 7 DAY), '*', '') AS 'late',
   b.author,
   CONCAT('<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=', b.biblionumber, '">', b.title, '</a>') AS 'title',
   CONCAT('<a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=', b.biblionumber, '#item', bt.itemnumber, '">', i.barcode, '</a>') AS 'barcode',
   i.itype,
   i.location,
   bt.tobranch,
   bt.datesent
FROM branchtransfers bt
LEFT JOIN items i ON i.itemnumber = bt.itemnumber
LEFT JOIN biblio b ON b.biblionumber = i.biblionumber
WHERE bt.frombranch = <<Lähtökirjasto|branches>>
  AND bt.datearrived IS NULL
ORDER BY
    late DESC,
    bt.tobranch,
    bt.datesent ASC

Hankinta

Kouvolan hankintaraportti

Kouvolassa rahoja seurataan hyllypaikoittain ja osin aineistolajeittain, jotta valitsijoiden on helppo seurata ’omia’ rahojansa. Tässä on varmaan paljon vaihtelua kirjastoittain ja siksi tätä raporttia voi joutua paljonkin kustomoimaan. Aineistojen hintoja on raporttiin haettu paristakin paikasta ihan vertailun vuoksi, me käytämme sum(items.price) eli niteissä olevaa hintaa.
Tehnyt: Tuomas Kunttu 29.1.2019

SELECT items.permanent_location AS 'hyllypaikka', count(items.itemnumber) AS 'Hankittu', sum(items.price) AS 'Hinta niteissä', sum(aqorders.unitprice) AS 'Hinta tilauksessa', 'Kaikki aineistolajit'
FROM items
JOIN aqorders_items ON (aqorders_items.itemnumber=items.itemnumber)
JOIN aqorders ON (aqorders_items.ordernumber=aqorders.ordernumber)
WHERE aqorders.datereceived BETWEEN (@AloitusPvm:= <<AloitusPvm |date>>) AND (@LopetusPvm:= <<LopetusPvm |date>>) AND items.homebranch like 'KOU%'
GROUP BY items.permanent_location WITH ROLLUP
UNION ALL

SELECT items.permanent_location AS 'hyllypaikka', count(items.itemnumber) AS 'Hankittu', sum(items.price) AS 'Hinta niteissä', sum(aqorders.unitprice) AS 'Hinta tilauksessa', 'CD+kasetti+äänilevy'
FROM items
JOIN aqorders_items ON (aqorders_items.itemnumber=items.itemnumber)
JOIN aqorders ON (aqorders_items.ordernumber=aqorders.ordernumber)
WHERE aqorders.datereceived BETWEEN @AloitusPvm AND @LopetusPvm AND items.homebranch like 'KOU%' AND (items.itype="CD" OR items.itype="AANILEVY" OR items.itype="KASETTI")
GROUP BY items.permanent_location WITH ROLLUP

UNION ALL
SELECT items.permanent_location AS 'hyllypaikka', count(items.itemnumber) AS 'Hankittu', sum(items.price) AS 'Hinta niteissä', sum(aqorders.unitprice) AS 'Hinta tilauksessa', 'Kirjat + muut aineistot'
FROM items
JOIN aqorders_items ON (aqorders_items.itemnumber=items.itemnumber)
JOIN aqorders ON (aqorders_items.ordernumber=aqorders.ordernumber)
WHERE aqorders.datereceived BETWEEN @AloitusPvm AND @LopetusPvm AND items.homebranch like 'KOU%' AND (items.itype="KIRJA" OR items.itype="CDROM" OR items.itype="DIA" OR items.itype="ESINE" OR items.itype="KARTTA" OR items.itype="KIELIKURS" OR items.itype="KUUNNELMA" OR items.itype="KASIKIRJ" OR items.itype="LEIKEK" OR items.itype="LIIKUNTA" OR items.itype="MIKROF" OR items.itype="MIKROK" OR items.itype="MONISTE" OR items.itype="MONIV" OR items.itype="TYOPIIR" OR items.itype="AANIKIRJA")
GROUP BY items.permanent_location WITH ROLLUP

UNION ALL
SELECT items.permanent_location AS 'hyllypaikka', count(items.itemnumber) AS 'Hankittu', sum(items.price) AS 'Hinta niteissä', sum(aqorders.unitprice) AS 'Hinta tilauksessa', 'DVD + Blu-ray + Combo + video'
FROM items
JOIN aqorders_items ON (aqorders_items.itemnumber=items.itemnumber)
JOIN aqorders ON (aqorders_items.ordernumber=aqorders.ordernumber)
WHERE aqorders.datereceived BETWEEN @AloitusPvm AND @LopetusPvm AND items.homebranch like 'KOU%' AND (items.itype="DVD" OR items.itype="BLURAY" OR items.itype="DVDBR" OR items.itype="VIDEO")
GROUP BY items.permanent_location WITH ROLLUP

UNION ALL
SELECT items.permanent_location AS 'hyllypaikka', count(items.itemnumber) AS 'Hankittu', sum(items.price) AS 'Hinta niteissä', sum(aqorders.unitprice) AS 'Hinta tilauksessa', 'konsolipeli'
FROM items
JOIN aqorders_items ON (aqorders_items.itemnumber=items.itemnumber)
JOIN aqorders ON (aqorders_items.ordernumber=aqorders.ordernumber)
WHERE aqorders.datereceived BETWEEN @AloitusPvm AND @LopetusPvm AND items.homebranch like 'KOU%' AND items.itype="KONSOLIP" 
GROUP BY items.permanent_location WITH ROLLUP

UNION ALL
SELECT items.permanent_location AS 'hyllypaikka', count(items.itemnumber) AS 'Hankittu', sum(items.price) AS 'Hinta niteissä', sum(aqorders.unitprice) AS 'Hinta tilauksessa', 'nuotti'
FROM items
JOIN aqorders_items ON (aqorders_items.itemnumber=items.itemnumber)
JOIN aqorders ON (aqorders_items.ordernumber=aqorders.ordernumber)
WHERE aqorders.datereceived BETWEEN @AloitusPvm AND @LopetusPvm AND items.homebranch like 'KOU%' AND items.itype="NUOTTI" 
GROUP BY items.permanent_location WITH ROLLUP

UNION ALL
SELECT items.permanent_location AS 'hyllypaikka', count(items.itemnumber) AS 'Hankittu', sum(items.price) AS 'Hinta niteissä', sum(aqorders.unitprice) AS 'Hinta tilauksessa', 'lehti'
FROM items
JOIN aqorders_items ON (aqorders_items.itemnumber=items.itemnumber)
JOIN aqorders ON (aqorders_items.ordernumber=aqorders.ordernumber)
WHERE aqorders.datereceived BETWEEN @AloitusPvm AND @LopetusPvm AND items.homebranch like 'KOU%' AND items.itype="KAUSIJULK" 
GROUP BY items.permanent_location WITH ROLLUP

UNION ALL
SELECT items.permanent_location AS 'hyllypaikka', count(items.itemnumber) AS 'Hankittu', sum(items.price) AS 'Hinta niteissä', sum(aqorders.unitprice) AS 'Hinta tilauksessa', 'muut, joita ei pitäisi ollakaan'
FROM items
JOIN aqorders_items ON (aqorders_items.itemnumber=items.itemnumber)
JOIN aqorders ON (aqorders_items.ordernumber=aqorders.ordernumber)
WHERE aqorders.datereceived BETWEEN @AloitusPvm AND @LopetusPvm AND items.homebranch like 'KOU%' AND (items.itype="KAUSIJULK" OR items.itype="LEHTI" OR items.itype="EKIRJA" OR items.itype="EAANIKIRJA" OR items.itype="DAISY")
GROUP BY items.permanent_location WITH ROLLUP